我正在使用这样的抽象类:
string photo = txtPhoto.Text;
然后我有很多利用此类的测试,如下所示:
@SpringBootTest(classes = MyAppApplication.class, webEnvironment = WebEnvironment.RANDOM_PORT)
@ActiveProfiles("test")
public abstract class AbstractIntegrationTest {
static {
PostgreSQLContainer postgreSQLContainer = new PostgreSQLContainer().withPassword("password")
.withUsername("postgres").withDatabaseName("MyApp");
postgreSQLContainer.start();
System.setProperty("spring.datasource.url", postgreSQLContainer.getJdbcUrl());
System.setProperty("spring.datasource.password", postgreSQLContainer.getPassword());
System.setProperty("spring.datasource.username", postgreSQLContainer.getUsername());
}
但是,我的一些测试会污染数据库。我想控制测试是否在新数据库中运行。规定的方法是什么?
答案 0 :(得分:0)
您可以使用@Before注释在执行测试之前清除所有内容。
或者您在执行每个测试之前都要进行清理。
每个测试应独立于另一个。因此通常:
如果测试失败,则数据库将处于失败状态,因此您可以检查发生了什么情况。
答案 1 :(得分:0)
在更多地了解了Spring Boot集成测试之后,看来规定的方法是对破坏性(或肮脏)的测试使用“ @DirtiesContext”注释。