为什么database_cleaner会破坏我的测试(minitest / capybara / factory girl)?

时间:2012-10-19 14:55:11

标签: ruby-on-rails testing capybara factory-bot minitest

我正在尝试database_cleaner使用我的测试套件而我无法在网上找到有关此错误的信息:

ERROR Couldn't find User with id=1

测试运行正常,直到我添加database_cleaner。这就是我在test_helper.rb文件中使用它的方式:

# Database cleaner.
DatabaseCleaner.strategy = :truncation
class MiniTest::Spec
  before :each do
    DatabaseCleaner.clean
  end
end

如果我的策略为:transaction,它也无效。

1 个答案:

答案 0 :(得分:0)

根据docs,对DatabaseCleaner.clean的调用应该在后挂钩中,而DatabaseCleaner.start在前挂钩中(截断策略可能不需要启动调用。) / p>

这里可能发生的事情是数据库清理程序在实际测试运行之前清除在挂钩之前设置的任何数据。它将取决于挂钩运行的顺序。