2.5 Hours of Video Training
Continuous Delivery (CD) is an agile practice that's had a big impact on how many people think about developing software. It forced us to start thinking that software is only "done" when it is released. With more features reaching the done stage sooner, CD practices have enabled us to get early feedback from users and taught us a lot about testing, monitoring, and automating our delivery along the way. But mobile development has often been left behind. Or has it?
Testing is an important component of CD and shouldn't be taken for granted or ignored, especially when developing mobile applications. The process of setting up a testable environment and writing tests, however, can be a challenge. Implementing unit tests and following principles of test-driven development for mobile apps--whether native or hybrid--is often counterintuitive. To guarantee that each component in your mobile app works properly for the set of inputs you expect, it is important to test each component (or unit) of an architecture independently and to simulate different system states based on the supplied input to the test, while covering exotic cases in the process.
In Test-Driven Development (TDD) for Android, ThoughtWorks Lead Consultant Cassie Shum takes a deep dive into the critical role of TDD in mobile development. This video quickly reviews Continuous Delivery best practices and the role of CD in mobile development. The video then focuses on the role of TDD, showcasing how to use tools for unit testing and UI testing by demonstrating with Android testing frameworks Robolectric and Espresso.
Lesson 1: Continuous Delivery
1.1 Continuous delivery overview
1.2 Benefits of continuous delivery
1.3 Evolution of mobile development
Lesson 2: TDD and the Testing Pyramid
2.1 Testing mobile applications
2.2 Continuous integration
2.3 The testing pyramid
2.4 A simple application: acceptance tests, integration tests, and unit tests
2.5 What is test-driven development?
2.6 Red, green, refactor
Lesson 3: Android Testing Framework: Robolectric
3.1 When to use Robolectric
3.2 Understand the Robolectric project structure
3.3 Test the Robolectric framework from IDE or command line
3.4 Test-driven development with Robolectric
3.5 Test additional requirements with Robolectric
3.6 Red, green, refactor, and run the app
3.7 Run tests in command line and view test summary in browser
Lesson 4: Android Testing Framework: Espresso
4.1 When to use Espresso
4.2 Understand the Espresso project structure
4.3 Test the Espresso framework from IDE or command line
4.4 Test-driven development with Espresso
4.5 Test additional requirements with Espresso
4.6 Unit test vs user journey test
4.7 Compare Robolectric and Espresso in the testing pyramid