A showcase of how to test different parts of an Android application using automated tests.
The app covers following tests
- Unit Tests
- Integration Tests
- End-to-End Tests
The makes use of the following techniques to test components in isolation and in conjuction with asynchronous logic.
- Test doubles using fake resources
- Test doubles using mocks (Mockito)
- CountingIdlingResource for synchronization of background work with Espresso
- DataBindingIdlingResource for synchronization of DataBinding related UI work with Espresso
Following Libraries were used for testing
- JUnit4
- Espresso
- AndroidJUnit4 Runner
- Roboelectric
- Androidx Testing libries set
- Kotlin Coroutes Testing library
- Mockito
- Hamcrest
- ViewModel
- Fragment
- Room Database
- Repository
- Util classes
- ViewModel and Fragment pairs for all screens
- LocalDataSource and Room Database
- Fragment and Android Navigation Component
- ViewModel and Repository
- Clicking task, edit it, save it
- Create a task, delete it.