对于我的测试,我使用最新的 Rspec、FactoryGirl、Guard 组合来对抗本地 SQLite 数据库。当我在开发 BDD 风格时,我经常会编写一个失败的测试,它可能会在数据库中留下一些垃圾数据,我认为尤其是在存在解释器错误的情况下。
我经常被迫删除数据库并重新迁移以将其恢复到干净状态,这既费时又痛苦。似乎大多数时候 Rspec 自己的回滚机制做得很好,但有时还不够。
处理这种情况的正确方法是什么?每次执行单个测试时都应该擦除数据库吗?database_cleaner 会比 Rspec 做得更好吗?
谢谢!