Chapter 1: Getting started with Espresso for Android
Describes basics about Espresso. Defines goals and approaches of User Interface testing. Provides example about setting up the tests inside the Android Studio IDE project. Explains how to identify Android application UI elements, perform actions, assertions and apply matches to them. At the end of this chapter reader will be able to write simple tests and execute them from inside the Android Studio IDE on the device or emulator. There will be also examples how to run tests using gradle or shell commands.
Chapter 2: Customizing Espresso for our needs
With more advanced examples reader will learn how to implement custom ViewActions, including clicks and swiping actions; ViewMatchers, such as: matching complex views, RecyclerView matchers or Drawable matchers. It will be shown how to use custom actions and matchers, implement custom FailureHandler with possibility to take and save screenshots on failure.
Chapter 3: Handling network operations or long lasting actions
Explains how to handle application network requests or long lasting operations during test execution with the help of IdlingResource interface. Provides an example about ConditionalWatcher as an alternative to IdlingResource.
Chapter 4: Verifying and stubbing intents with IntentMatchers
Shows IntentMatchers usage inside the application under test as well as possibility to stub external intents and provide back extras. A good example of external intent can be selecting image from the photo gallery which then can be used by our application under test.
Chapter 5: Testing web views
Here reader will be given an overview about testing web views inside application under test.
Chapter 6: Writing Espresso tests with Kotlin
Kotlin is gaining big popularity in Android developers world recently. So, in this chapter author will give an introduction into testing with Kotling and Espresso, tell about benefits of using Kotlin programming language, show how to migrate Java test code into Kotlin.
Chapter 7: Test automation tooling
After reading this chapter reader will understand how to use Espresso test recorder, set up test device or emulator to minimize test flakiness and run tests in Firebase cloud.
Chapter 8: Espresso and UIAutomator - the perfect tandem
This chapter shows one of the most powerful test automation setup for Android, which combines Espresso test framework together with UIAutomator testing tool. There will be examples how to test notifications or operate on third party apps during Espresso tests execution.
Chapter 9: Accessibility testing
An example of how to test application accessibility with Espresso.
Chapter 10. Screen Object architecture approach
Will show how to apply Screen Object (the same as page object) architecture approach to the test project which allows to reduce maintenance effort spent on reworking tests after changes in application under test source code.
Chapter 11: Supervised monkey tests using Espresso and UIAutomator
The last chapter will give an example how to implement supervised pseudo monkey tests using Espresso and UIAutomator.
Denys Zelenchuk's professional career as Test Engineer started in Poland in 2010. Starting from 2011, he has been involved in testing mobile applications. He was working at companies like Tieto Poland, XING (Hamburg, Germany) and currently is working and living in Zurich Switzerland in Numbrs Personal Finance AG company. As of October 2013, he's been using Espresso for Android test automation framework to write automated tests.
Write Android user interface (UI) tests using Google Espresso for Android. You’ll cover all the major topics of writing functional UI automated tests using the Espresso testing framework, including different ways of running automated tests, architecting test projects in an easy and maintainable way, and using tools which help to implement automated tests with less effort.
Android Espresso Revealed explains the basics of using Espresso to write automated UI tests, and how to customize the framework for advanced functionality. The author provides examples in both Java and Kotlin, and includes dealing with network operations in UI tests, testing application accessibility, implementing supervised monkey tests, and more.
You will:
Write Espresso tests with both Kotlin and Java including test project migration from Java to Kotlin
Test web views inside the application under test
Use Espresso to set up test devices or emulators to minimize test flakiness and run tests in Firebase Test Lab
Verify and stub intents with Espresso-Intents
Move test projects to AndroidX
Test notifications or operate on third-party apps during Espresso test execution
Apply different test architecture approaches to the test project to reduce maintenance effort
Implement supervised monkey tests using Espresso and UIAutomator