我们使用Grails作为我们的Web框架,我们有集成测试,我们想要隔离。提出的一个想法是在每个测试用例之后删除数据库。什么是实现测试隔离的替代和更适用的方法。
答案 0 :(得分:2)
我们做了两件事:
答案 1 :(得分:1)
你可能不需要那些具有攻击性的东西。每个集成测试都在一个在测试结束时回滚的事务中运行,因此您不应该看到以前测试中的任何内容。在某些情况下,您希望提交事务,因此您可以自行禁用自动事务和回滚并管理事务。这将增加测试之间数据污染的可能性,但它很容易修复。
由于数据库最初是在内存中,因此删除整个数据库并重新创建所有表和对象的成本相对较低,但如果移动到“真实”数据库,例如,这将会非常慢。 Postgres的本地安装,以确保测试的运行尽可能接近代码在生产中的运行方式。