1

我的集成测试大多数使用spring的AbstractTransactionalSpringContextTests来执行回滚而不是向数据库提交。这通常工作正常,但是因为在提交阶段之前不会应用外键约束,所以我的测试策略中存在漏洞。使用AbstractTransactionalSpringContextTests时未捕获约束检查错误的测试(回滚)

我该如何改进我的测试?

我想尽可能避免commiting因为这会导致测试花费更长的时间来运行(当有很多)

回答

0

我知道你不想提交给数据库例如刷新会话,但为此目的使用内存中的sqlite数据库时性能可能会被接受。我使用NHibernate(与流利的NHibernate)和内存中的sql-lite数据库(how to here)完成单元测试;只要您只创建数据库的相关部分,而不是完整的模式,这种方法运行得相当快。

您可以轻松地扩展AbstractTransactionalSpringContextTests类刷新到数据库,看到spring.net docs 22.2.10this thread on the spring.net forum,所以你应该能够得到这样的测试套件快速工作。

+0

谢谢,我们将我们的数据库中的数据刷新为我们的抽象类攻击类的重写 – 2011-09-29 08:30:45