我的大多数集成测试使用spring AbstractTransactionalSpringContextTests
进行回滚而不是提交到数据库。这通常很有效但是因为在提交阶段之前不会应用外键约束,所以我的测试策略中存在一个漏洞。
如何改进测试?
我希望尽可能避免提交,因为这会导致测试运行时间更长(当有很多时)
答案 0 :(得分:0)
我知道您不想提交数据库,例如刷新会话,但在为此目的使用内存中的sqlite数据库时,性能可能是可接受的。
我已经使用NHibernate(使用Fluent NHibernate)和内存中的sql-lite数据库(how to here)完成了单元测试;只要您只创建数据库的相关部分而不是完整的模式,这个工作就会非常快。
您可以轻松扩展AbstractTransactionalSpringContextTests
类以刷新到数据库,请参阅spring.net docs 22.2.10或this thread on the spring.net forum,这样您就可以快速为您的测试套件工作。< / p>