There are many different kinds of tests, and it can be confusing sometimes to know what we're talking about. For instance, when people refer to functional tests, they may refer to different kinds of tests depending on the project's nature.
In the microservice land, we can classify tests into these five distinct goals:
- Unit tests: Make sure a class or a function works as expected in isolation
- Functional tests: Verify that the microservice does what it says from the consumer's point of view, and behaves correctly even on bad requests
- Integration tests: Verify how a microservice integrates with all its network dependencies
- Load tests: Measure the microservice performances
- End-to-end tests: Verify that the whole system works with an end-to-end test
We will see these in detail in the following sections.