我看过关于它的多个话题。但是,没有人能真正解决我的问题。
我有一个具有三个传统层的Spring Boot 2.3应用程序:控制器,服务和DAO。交易在我的服务层中声明。
我想使用MockMvc测试我的Controller层,我希望在测试结束时回滚事务,以便它们都保持独立。但是,我不希望测试为Controller类提供对事务上下文的访问权限,以使其具有与运行时相同的配置。
我创建了以下课程:
@SpringBootTest
@AutoConfigureMockMvc
public class ApiIT {
@Autowired
private MockMvc mvc;
@Test
void restEndpointTest() {
...
此配置不会在测试结束时回滚事务。
当我用@Transactional
注释类时,它们会回滚,但是Controller类可以访问事务上下文。