我正在为 Spring-Data JPA 和 Spring-Data-Mongo 存储库创建 JUnit 测试(每个类仅包含一个存储库的测试)。为了在执行每个测试之前清理数据库,我使用 DirtiesContext:
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
对于 JPA(Postgres 或 H2 DB),它可以正常工作,因此对于每个测试,我都会得到一个干净的数据库。但它不适用于 MongoDB - 每次测试之前都不会重新创建数据库。我知道我可以使用:
@Autowired
private MongoTemplate mongoTemplate;
@After
public void clearCollection() {
mongoTemplate.dropCollection(DocHeader.class);
}
但我想了解为什么它适用于 Postgres 或 H2 而不适用于 Mongo。