Rspec 为什么是Avdi Grimm';s数据库清理器示例不';在rails 4.2.4中现在不能再工作了吗?

Rspec 为什么是Avdi Grimm';s数据库清理器示例不';在rails 4.2.4中现在不能再工作了吗?,rspec,capybara,rspec-rails,database-cleaner,Rspec,Capybara,Rspec Rails,Database Cleaner,我不太确定确切的问题是什么,但是Avdi Grimm建议的database_cleaner用法示例现在似乎不再适用,取而代之的是database_cleaner自述文件中的示例。这两个示例都已将事务装置设置为false 以下是Avdi Grimm的例子: 下面是database_cleaner中显示的工作示例: 唯一不同的是截断策略设置。IIRC第二个将对:js标记的任何非nil/false值使用截断,第一个将仅在:js标记===true时使用截断。即使我将第一个上的:js=>true更改为:j

我不太确定确切的问题是什么,但是Avdi Grimm建议的database_cleaner用法示例现在似乎不再适用,取而代之的是database_cleaner自述文件中的示例。这两个示例都已将事务装置设置为false

以下是Avdi Grimm的例子:

下面是database_cleaner中显示的工作示例:


唯一不同的是截断策略设置。

IIRC第二个将对:js标记的任何非nil/false值使用截断,第一个将仅在:js标记===true时使用截断。

即使我将第一个上的
:js=>true
更改为
:js
,它仍然不起作用。
RSpec.configure do |config|
  # added here for completeness
  config.use_transactional_fixtures = false 

  config.before(:suite) do
    DatabaseCleaner.clean_with(:truncation)
  end

  config.before(:each) do
    DatabaseCleaner.strategy = :transaction
  end

  config.before(:each, :js => true) do
    DatabaseCleaner.strategy = :truncation
  end

  config.before(:each) do
    DatabaseCleaner.start
  end

  config.after(:each) do
    DatabaseCleaner.clean
  end
end
RSpec.configure do |config|
  config.use_transactional_fixtures = false

  config.before(:suite) do
    DatabaseCleaner.clean_with(:truncation)
  end

  config.before(:each) do |example|
    DatabaseCleaner.strategy = example.metadata[:js] ? :truncation : :transaction
    DatabaseCleaner.start
  end

  config.after(:each) do
    DatabaseCleaner.clean
  end
end