antonovdmitriy / bridle

1 stars 0 forks source link

Write unit test with dockercontainers for docker compose files #47

Closed antonovdmitriy closed 1 year ago

antonovdmitriy commented 1 year ago

import org.junit.jupiter.api.Test; import org.testcontainers.containers.DockerComposeContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers;

import java.io.File; import java.time.Duration;

import static org.assertj.core.api.Assertions.assertThat;

@Testcontainers public class DockerComposeTest {

@Container
public DockerComposeContainer<?> environment =
        new DockerComposeContainer<>(new File("src/test/resources/docker-compose-test.yml"))
                .withExposedService("myservice_1", 8080)
                .withPullPolicy(DockerComposeContainer.PullPolicy.alwaysPull())
                .withStartupTimeout(Duration.ofMinutes(3));

@Test
void testService() {
    String address = environment.getServiceHost("myservice_1", 8080);
    Integer port = environment.getServicePort("myservice_1", 8080);

    // здесь вы можете взаимодействовать с сервисом, как обычно, используя адрес и порт
    // например, вы можете использовать RestTemplate или WebClient для выполнения HTTP-запросов
    // или используйте любой другой клиент для работы с сервисом

    // assertThat(...)
}

}

antonovdmitriy commented 1 year ago