Should I test that?

Mobile

What to test in mobile apps: real devices, OS versions, offline mode, push notifications and deep links.

Yes5

  • Is testing on an emulator enough?

    No, an emulator alone is not enough before a release: keep the automated suite on emulators, and run the main flows on one or two real phones before each store release.

    Code under test: Yes

  • Yes, test how your app handles a slow network: with a fake server that trickles or withholds each response, assert that the screen shows a loading state, ends in an error with Retry within the call timeout, and sends no duplicate request.

  • Test minimally on low-end devices: before each release, run one automated test of the main flow on one real Android phone with 3 GB of RAM or less, and stop the release when the app crashes, stops responding, or starts slower than a set limit.

  • Yes, test a React Native app: unit tests for its logic and one component test per main screen flow, written with Jest and React Native Testing Library and run in CI on every pull request.

  • Yes, unit test view models: with a fake repository, assert the screen state after a successful, an empty and a failed load and after each user action, in local tests that need no device.