0

对于我的测试,我使用最新的 Rspec、FactoryGirl、Guard 组合来对抗本地 SQLite 数据库。当我在开发 BDD 风格时,我经常会编写一个失败的测试,它可能会在数据库中留下一些垃圾数据,我认为尤其是在存在解释器错误的情况下。

我经常被迫删除数据库并重新迁移以将其恢复到干净状态,这既费时又痛苦。似乎大多数时候 Rspec 自己的回滚机制做得很好,但有时还不够。

处理这种情况的正确方法是什么?每次执行单个测试时都应该擦除数据库吗?database_cleaner 会比 Rspec 做得更好吗?

谢谢!

4

1 回答 1

1

脑海中浮现出三种方式。

一,将您的测试包装在事务中,并在最后回滚。

二、使用可以非常快速地创建/拆除的内存数据库

三,完全模拟您的数据库连接并根据进行的数据库调用执行验证。

于 2012-05-28T23:27:23.870 回答