我看到这个很酷的方法只使用数据库清理器:截断水豚测试使用:js => true
在 spec_helper.rb 中:
config.before(:each) do
DatabaseCleaner.strategy = if example.metadata[:js]
:truncation
else
:transaction
end
DatabaseCleaner.start
end
config.after(:each) do
DatabaseCleaner.clean
end
问题是使用 capybara 完成的任何功能测试似乎都需要清理策略为 :truncation。
但是,所有其他规范都可以使用 :transaction,这要快得多。
有没有一种方法可以指定仅针对 capybara 功能测试的策略?就像是:
DataCleaner.strategy( :truncation ) if :type => :feature