Saturday, April 18, 2015

Espresso book?

I have been using Espresso for more than a year now, and I love it. I am considering writing a book / recording a video class / giving talks & workshops on the topic, but it is a substantial amount of work so I want to gauge interest before I start. If this material is valuable to you, please let me know by filling this form.

The outline


  • What is instrumentation testing?
  • What is Espresso?
  • Basic anatomy of an Espresso test


  • How do matchers work?
  • Combining matchers (Hamcrest & Espresso)
  • Matching inside an AdapterView
    • onData
    • onChildView
    • inAdapterView
  • Using RecyclerViewActions with RecyclerView
  • Custom matchers


  • click(): What happens behind the scene?
  • Custom actions
    • getConstraints()
    • perform()


  • matches(ViewMatcher)
  • doesNotExist()
  • Custom assertions


  • Incoming: setActivityIntent
  • Outgoing: ActivityMonitor

App synchronization

  • The notion of idling
  • Custom IdlingResource

Repeatable tests

  • Avoid external dependencies (network, device configuration etc)
  • Dagger and Mockito

Cast studies

  • Combining various techniques in real-world scenarios

Your input

As a start, I submitted a talk proposal to Droidcon NYC. Please fav this tweet if you want to hear it:

However, the talk is only 40-minute long, highlighting maybe a quarter of this outline. It will take a lot more effort to flesh out the whole outline, so please let me know your interest by filling in this form: Thank you!

Update: I have started publishing Espresso courses! Still trying to figure out what topics to tackle next, so I'd really appreciate your input.


Inline coding questions will not be answsered. Instead, ask on StackOverflow and put the link in the comment.

  1. Sounds great Chiu! I'm quite interested to read to learn about your Espresso courses. Looking forward. Did you manage to consider any topics? And do you have plan to publish your written book in eBook format?

  2. I'm very late to this but I would love to go to a conference talk, meet up talk, workshop, or take some online tutorials about Espresso. What resources do you recommend now for a learner?

    1. Check out my Espresso course: