在我们使用 MySql 的 Rails 4.0 应用程序中,我们使用 rspec 和配置了 strategy :transaction 的 database_cleaner gem 来为每个测试用例清理我们的数据库。如果我们有应该回滚的自定义事务,它就不起作用。
没有 database_cleaner gem,只使用标准方式:
config.use_transactional_fixtures = true
一切都按方面进行。但是为了使用 JavaScript 运行特性测试,我们需要 database_cleaner 将夹具删除策略更改为 :truncation。
我们如何将 database_cleaner 与自定义事务一起使用,为什么它与标准 rspec 事务策略不同?