Writing apps is hard. Writing testable apps is even harder, but it doesn’t have to be. Reading and understanding all the official Google documentation on testing can be time-consuming — and confusing.
In this book, you’ll learn about Android test-driven development the quick and easy way: by following fun and easy-to-read tutorials. Learn to write sustainable, testable apps, as well as to apply testing strategies to legacy projects via Espresso and UI tests, code coverage and refactoring.
This book is for the intermediate Android developers who already know the basics of Android and Kotlin development but want to learn Android test-driven development.
Topics Covered in This Book
Getting Started with Testing: Learn the core concepts involved in testing including what is a test, why should you test, what should you test and what you should not test.
Test-Driven Development (TDD): Discover the Red-Green-Refactor steps and how to apply them.
The Testing Pyramid: Learn about the different types of tests and how to organize them.
Unit Tests: Learn how to start writing unit tests with TDD using JUnit and Mockito.
Integration Tests: Writing tests with different subsystems is a must in today’s complex application world. Learn how to test with different subsystems including the persistence and network layers.
Architecting for Testing: Explore how to architect your app for testing and why it matters.
TDD on Legacy Projects: Take your TDD to the next level by learning how to apply it to existing legacy projects.
Before You Begin
This section tells you a few things you need to know before you get started, such as what you’ll need for hardware and software, where to find the project files for this book, and more.
Section I: Introduction to Test-Driven Development
This section introduces you to Android test-driven development (TDD). If testing or TDD are new concepts to you, we recommend starting here. You’ll learn everything from what a test is, why you should test, what you should test, and what you should not test.
You’ll then get your feet wet by writing your first Kotlin test, independent of the Android framework, with the principles of TDD. This section lays the foundation for TDD.
While HTTP requests can be unpredictable, your tests don't have to be. In this chapter, learn how to write predictable network tests working on the Punchline app. Learn some random jokes on the way as well!
UI tests allow you to test your app end-to-end without having to manually click-test your app. Learn the fundamentals of UI tests using the Espresso library.
Section III: TDD on Legacy Projects
Now that you have an understanding of TDD and have different tools at your disposal, you’ll learn how to apply these techniques to projects that weren’t created using TDD and do not have sufficient test coverage. You’ll work through Furry Coding Companion Finder on your way to becoming a TDD guru.
Refactoring a legacy application doesn't have to be scary once you have some tests for it. Learn how to take small steps and move slowly as you keep your test suite green as you make changes to your app.