6 changed files with 30 additions and 28 deletions
@ -1,23 +0,0 @@
@@ -1,23 +0,0 @@
|
||||
[[howto.testcontainers]] |
||||
== Use Testcontainers for integration testing |
||||
The https://www.testcontainers.org/[Testcontainers] library provides a way to manage services running inside Docker containers. |
||||
It integrates with JUnit, allowing you to write a test class that can start up a container before any of the tests run. |
||||
Testcontainers is especially useful for writing integration tests that talk to a real backend service such as MySQL, MongoDB, Cassandra etc. |
||||
Testcontainers can be used in a Spring Boot test as follows: |
||||
|
||||
[source,java,indent=0,subs="verbatim"] |
||||
---- |
||||
include::{docs-java}/howto/testcontainers/vanilla/MyIntegrationTests.java[] |
||||
---- |
||||
|
||||
This will start up a docker container running Neo4j (if Docker is running locally) before any of the tests are run. |
||||
In most cases, you will need to configure the application using details from the running container, such as container IP or port. |
||||
|
||||
This can be done with a static `@DynamicPropertySource` method that allows adding dynamic property values to the Spring Environment. |
||||
|
||||
[source,java,indent=0,subs="verbatim"] |
||||
---- |
||||
include::{docs-java}/howto/testcontainers/dynamicproperties/MyIntegrationTests.java[] |
||||
---- |
||||
|
||||
The above configuration allows Neo4j-related beans in the application to communicate with Neo4j running inside the Testcontainers-managed Docker container. |
||||
Loading…
Reference in new issue