Integration tests
After creating unit and component tests, we have verified all the functionalities inside the microservices. However, we still need to test the interaction with other services, external data stores, and caches. In microservices-based architecture integration, tests are treated differently than they are in monolithic applications. Because all the relationships between internal modules have been tested through the component tests, we have tested only those modules that interact with external components.
Categorizing tests
It also makes sense to separate integration tests in the CI pipeline so that external outages don't block or break the build of the project. You should consider categorizing your tests by annotating them with @Category
. You may create the interface especially for integration tests, for example, IntegrationTest
:
public interface IntegrationTest { }
Then, you can mark your test with that interface using the @Category
annotation:
@Category(IntegrationTest.class...