使用AbstractTransactionSpringContextTests(回滚)时未捕获约束检查错误的测试

时间:2011-06-10 13:38:00

标签: nhibernate transactions integration-testing spring.net check-constraints

我的大多数集成测试使用spring AbstractTransactionalSpringContextTests进行回滚而不是提交到数据库。这通常很有效但是因为在提交阶段之前不会应用外键约束,所以我的测试策略中存在一个漏洞。

如何改进测试?

我希望尽可能避免提交,因为这会导致测试运行时间更长(当有很多时)

1 个答案:

答案 0 :(得分:0)

我知道您不想提交数据库,例如刷新会话,但在为此目的使用内存中的sqlite数据库时,性能可能是可接受的。

我已经使用NHibernate(使用Fluent NHibernate)和内存中的sql-lite数据库(how to here)完成了单元测试;只要您只创建数据库的相关部分而不是完整的模式,这个工作就会非常快。

您可以轻松扩展AbstractTransactionalSpringContextTests类以刷新到数据库,请参阅spring.net docs 22.2.10this thread on the spring.net forum,这样您就可以快速为您的测试套件工作。< / p>