2014-07-02 54 views
0

測試控制器時,當與RSpec的測試我的模型不清洗我用下面的代碼來清洗我的數據庫:數據庫使用RSpec

config.before(:suite) do 
    begin 
    DatabaseCleaner.start 
    ensure 
    DatabaseCleaner.clean 
    end 
end 

config.after(:suite) do 
    DatabaseCleaner.clean_with(:truncation) 
end 

我所有的模型測試通過,但是當我測試我的控制器出現使用與我的模型運行相同的數據集,使我的測試出錯。

我可以讓我的控制器的測試使用此代碼,而不是通過:

config.before(:suite) do 
    DatabaseCleaner.strategy = :transaction 
    DatabaseCleaner.clean_with(:truncation) 
end 

config.before(:each) do 
    DatabaseCleaner.start 
end 

config.after(:each) do 
    DatabaseCleaner.clean 
end 

然而,這引起我的模型測試失敗。有關如何在不破壞一組測試或其他組合的情況下組合這些塊的任何建議?

回答

1

您沒有提及任何特定版本的database_cleaner,也沒有提及您的數據庫。但對於RSpec的database_cleaner最新的配置使用的過濾器周圍

https://github.com/DatabaseCleaner/database_cleaner#rspec-example

+0

對此深感抱歉,我使用的是最新版本。這是完美的! – Harbinger

+0

太棒了!配置到database_cleaner每隔一段時間都會更改一次。 –