Код: Выделить всё
package com.changeorama.solidify;
import static org.junit.Assert.assertTrue;
import org.junit.jupiter.api.Test;
....
@Testcontainers
public class AbstractTest {
@Container
private static final PostgreSQLContainer postgres = new PostgreSQLContainer();
static {
postgres.start();
}
@Test
void testPostgresIsRunning() {
assertTrue(postgres.isRunning());
}
@DynamicPropertySource
static void postgreSQLProperties(DynamicPropertyRegistry registry) {
registry.add("spring.datasource.url", postgres::getJdbcUrl);
registry.add("spring.datasource.username", postgres::getUsername);
registry.add("spring.datasource.password", postgres::getPassword);
}
}
Код: Выделить всё
package com.changeorama.solidify.repository;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import java.util.List;
import org.junit.jupiter.api.Test;
....
import lombok.extern.slf4j.Slf4j;
@Slf4j
@ActiveProfiles(profiles = "test")
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
public class CompartmentRepositoryTest extends AbstractTest{
@Autowired
CompartmentRepository compRepository;
@Test
void testSaveCompartment() {
//Load test data
CompartmentEntity comp = new CompartmentEntity();
comp.setCompartmentId(12);
comp.setCompartmentName(“Comp abc”);
comp.setCompartmentSize(12);
compRepository(comp);
}
@Test
void testGetAllCompartments() {
List comps = compRepository.findAll();
assertThat(comps.isEmpty(), is(false));
}
}
Есть ли у нас возможность выполнять очистку базы данных между тестами?
Можно ли в любом случае выполнить очистку данных вручную, если это невозможно с помощью @TestContainers?
Подробнее здесь: https://stackoverflow.com/questions/640 ... unit-tests