如果是 Spring,我应该继承什么类来创建数据库集成测试?

发布于 2024-08-21 20:50:51 字数 168 浏览 7 评论 0原文

我想创建一个用于集成测试的单元测试。我应该继承什么类才能提交/回滚事务? AbstractTransactionalSpringContextTests 已弃用。建议使用 AbstractJUnit38SpringContextTests 代替,但我找不到如何控制事务。

I want to create a unit test for integration testing. What class should I inherit to be able to commit/rollback transactions? AbstractTransactionalSpringContextTests is deprecated. It's recommended to use AbstractJUnit38SpringContextTests instead, but I cannot find how to control transactions there.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

淡莣 2024-08-28 20:50:51

检查一下 和 这个

简而言之,你需要:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:/applicationContext.xml")
public class YourTest {

    @Transactional
    public void someTest() {
    }
}

这意味着你需要 JUnit 4.x

Check this and this

In short, you need:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:/applicationContext.xml")
public class YourTest {

    @Transactional
    public void someTest() {
    }
}

That would mean you need JUnit 4.x

输什么也不输骨气 2024-08-28 20:50:51

无需将@Transactional放在方法级别,可以直接将其放在类级别

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:applicationContext.xml")
@TransactionConfiguration(defaultRollback=true, transactionManager="transactionManager")
@Transactional
public class YourTest {

    @Rollback(true)
    public void someTest() {
    }

}

No need to put the @Transactional in the method level you can directly place it in class level

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:applicationContext.xml")
@TransactionConfiguration(defaultRollback=true, transactionManager="transactionManager")
@Transactional
public class YourTest {

    @Rollback(true)
    public void someTest() {
    }

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文