Chapter 7. Writing tests for microservices

 

This chapter covers

  • Writing good automated tests
  • Understanding the test pyramid and how it applies to microservices
  • Testing microservices from the outside
  • Writing fast, in-process tests for endpoints
  • Using Nancy.Testing for integration and unit tests

Up to this point, you’ve written a few microservices and set up collaborations between some of them. The implementations are fine, but you haven’t written any tests for them. As you write more and more microservices, developing systems without good automated tests becomes unmanageable. In the first half of this chapter, I’ll discuss what you need to test for each individual microservice. Then we’ll dive into code, looking first at testing endpoints using the Nancy.Testing library, and then at testing a complete microservice as if you were sending it requests from another microservice.

7.1. What and how to test

In chapter 1, you saw three characteristics of a microservice that make it good for continuous delivery:

7.2. Testing libraries: Nancy.Testing and xUnit

7.3. Writing unit tests using Nancy.Testing

7.4. Writing service-level tests

7.5. Summary