Unit tests involve, basically, testing in units. These tests are often faster to execute because they are executed in the JVM, and hence do not require the dexing, packaging, and installing-on-the-emulator steps, reducing test cycles from minutes to seconds so that you can quickly iterate and refactor your code. Integration tests, on the other hand, require all the aforementioned steps. Apart from testing your code, unit tests also work as a great documentation of the code base. That's why it shouldn't surprise you if you see the names of methods phrased in odd ways—for example, testIfConfirmationEmailIsSent.
In this recipe, we will learn how to write unit tests for your Android code.