【发布时间】:2021-01-09 19:03:27
【问题描述】:
在 Spring Boot 中,我使用 @DirtiesContext 确保在每个测试用例之前清除数据库。
Quarkus AFAIK 没有 @DirtiesContext 注释。相反,建议使用 @TestTransaction。这样,测试用例所做的更改会在测试用例结束时回滚。这适用于单元测试。但是,我正在努力了解如何将其用于集成测试。
我的集成测试使用 rest 对控制器进行调用。一方面,我认为在控制器中使用 @TestTransaction 不是一个好主意。即使我这样做了,当 rest 调用返回时,数据也会被擦除。如果我在控制器中使用@Transaction,我将无法为下一个测试用例擦除数据库。
所以,我的问题是你们如何解决这个问题?在进行集成测试时如何确保有一个干净的上下文。
【问题讨论】:
标签: spring spring-boot quarkus quarkus-panache