首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用JUnit和SpringRunner运行非静态后测试

如何使用JUnit和SpringRunner运行非静态后测试
EN

Stack Overflow用户
提问于 2019-03-10 02:11:33
回答 1查看 169关注 0票数 1

我们在产品代码中有一些使用@Transaction(propagation = REQUIRES_NEW)注释的方法。因此,使用@Transactional/@Rollback注释测试类仍然会导致数据库受到污染。我想有一个方法,可以删除相关表中的记录时,这个类的所有测试都已完成。然而,Spring是静态的,那么我如何访问我的@AfterClass提供的EntityManager和/或Spring数据存储库。我们目前使用的解决方案是使用@DirtiesContext(mode=AFTER_CLASS)注释测试类,但是,如果您忘记覆盖此测试类的数据源URL,则会导致非常痛苦的体验。

那么,这可以通过更惯用的Spring/JUnit方式来实现吗?

EN

回答 1

Stack Overflow用户

发布于 2019-03-10 02:40:07

我有一个针对QA环境运行的回归套件。由于它执行应用程序,因此本质上它会修改数据库。对于这些测试,我有特定的测试用户,每个测试都会创建它所依赖的任何记录。在此设置和测试执行期间,将在本地集合中跟踪任何创建的数据库记录。在测试结束时,即在cleanUp方法期间,记录将从数据库中删除。我还使用了名称和测试运行标识符,以便在出现任何清理问题时轻松地将这些记录与实际数据区分开来。我不确定这是否符合您的惯用Spring/JUnit的想法,但这对我们来说是有效的,并保持我们的QA环境数据相当干净。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55080457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档