【发布时间】:2020-01-02 18:19:37
【问题描述】:
我正在使用 Hibernate 为我们的 Spring Boot REST API 创建单元测试。我只是想知道当我使用@Transactional 时是否有问题。如果我用@Transactional 注释测试,数据将永远不会真正最终进入数据库,并且潜在的错误源将被绕过?因为某些错误仅在提交期间发生,我是否认为正确?还是我看错了?
Rollback transaction after @Test - 以下问题与我的问题不太相符。因为我想知道如何触发提交并仍然进行回滚。 EntityManager.flush() 可以做什么。我知道如何在每次测试后重置数据库。
【问题讨论】:
-
另外,如果是单元测试,您可能希望使用模拟数据库,这样您就可以对数据进行细粒度控制。这真的取决于你想测试什么......
-
我已经看过这个问题,但我遇到了另一个问题。我对EntityManager一无所知,我可以用flush()触发数据库验证。这使得提交变得多余,我仍然可以使用@Transactional。不过谢谢。 =)
标签: spring spring-test