testcontainers-java
1package quickstart;
2
3import org.junit.jupiter.api.BeforeEach;
4import org.junit.jupiter.api.Test;
5import org.testcontainers.containers.GenericContainer;
6import org.testcontainers.junit.jupiter.Container;
7import org.testcontainers.junit.jupiter.Testcontainers;
8import org.testcontainers.utility.DockerImageName;
9
10import static org.assertj.core.api.Assertions.assertThat;
11
12// class {
13@Testcontainers
14public class RedisBackedCacheIntTest {
15
16private RedisBackedCache underTest;
17
18// container {
19@Container
20public GenericContainer redis = new GenericContainer(DockerImageName.parse("redis:6-alpine"))
21.withExposedPorts(6379);
22
23// }
24
25@BeforeEach
26public void setUp() {
27String address = redis.getHost();
28Integer port = redis.getFirstMappedPort();
29
30// Now we have an address and port for Redis, no matter where it is running
31underTest = new RedisBackedCache(address, port);
32}
33
34@Test
35public void testSimplePutAndGet() {
36underTest.put("test", "example");
37
38String retrieved = underTest.get("test");
39assertThat(retrieved).isEqualTo("example");
40}
41}
42// }
43