Android supports several testing types — unit tests (logic, run on the JVM), instrumented tests (run on a device/emulator, including UI tests with Espresso), and more. A good testing strategy improves reliability and confidence.
Test types
UNIT TESTS (local, on the JVM) → test logic (ViewModels, repositories, utilities):
→ fast (no device); use JUnit, Mockito/MockK (mocking), no Android framework needed
→ for business logic, data processing, ViewModels
INSTRUMENTED TESTS (on a device/emulator) → test code needing the Android framework:
→ UI tests (ESPRESSO — interact with and verify the UI), integration tests
→ slower (real device/emulator) but test real Android behavior
