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.