【问题标题】:Why Avdi Grimm's database_cleaner example doesn't work anymore right now in rails 4.2.4?为什么 Avdi Grimm 的 database_cleaner 示例现在在 rails 4.2.4 中不再有效?
【发布时间】:2015-11-21 05:07:03
【问题描述】:

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

以下是来自 his blog 的 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

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

【问题讨论】:

    标签: rspec capybara rspec-rails database-cleaner


    【解决方案1】:

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

    【讨论】:

    • 即使我把第一个的:js => true改成了:js,还是不行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    • 2011-05-15
    • 1970-01-01
    相关资源
    最近更新 更多