0

我不太确定确切的问题是什么,但是 Avdi Grimm 建议的 database_cleaner 使用示例现在似乎不再适用,而是 database_cleaner README 中显示的示例有效。这两个示例都已将事务性固定装置设置为 false。

以下是来自 Avdi Grimm博客的示例:

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

以下是 database_cleaner README中显示的工作示例:

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

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

4

1 回答 1

0

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

于 2015-11-21T15:33:31.217 回答