我不太确定究竟是什么问题,但是Avdi Grimm建议的database_cleaner使用示例现在似乎不再适用了,而不是database_cleaner README中显示的示例。两个示例都已将事务夹具设置为false。
以下是Avdi Grimm的例子来自his blog:
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
唯一不同的是截断策略设置。
答案 0 :(得分:0)
IIRC第二个将对:js标记的任何非零/假值使用截断,如果:js标记=== true,第一个将仅使用截断。