Maintaining cross-module integrity with integration tests
Most of the time, when we are dealing with a mobile application, there are multiple platforms involved, such as the client app itself, maybe local storage on the client application, and multiple server components. These components may very well be implemented in the most robust fashion and have deep code coverage with unit tests. Nevertheless, if the components cannot work together, then the effort that's put into individual components will be in vain.
To make sure that two or more components work well together, the developers can implement end-to-end or integration tests. While end-to-end scenarios are generally covered by automated UI tests, integration tests are implemented as a pair of permutations of the target system. In other words, we isolate two systems that depend on one another (for example, a mobile application and the web API facade) and prepare a fixture that will prepare the rest of the components so that...