我有以下行spec_helper.rbRspec的:事務燈具不升級後工作軌道4
config.use_transactional_fixtures = true
設置這意味着,每個試驗應清理後本身。任何由一次測試所做的db更新都不應該在下一次測試中出現。
我在我的一個spec文件中有兩個測試。
it 'should update the DB' do
Setting.put('abcd', 'efgh')
end
it 'should not find the DB update' do
Setting.get('abcd').should be_nil
end
上述兩個試驗中使用的使用Rails 3.2.14
工作升級後然而到導軌4,第二測試失敗,出現以下錯誤,
------
expected: nil
got: "efgh"
-----
我有一個由於這個問題,100個測試失敗。
我可以找到的Rails 4升級的唯一相關文檔是相當模糊的: 「Rails 4.0已棄用ActiveRecord :: Fixtures以支持ActiveRecord :: FixtureSet。」
我不確定這是否相關。理想情況下,我希望有一個全局設置(config.use_transactional_fixtures = true),並且不必改變測試的邏輯(或者在(:each)/之前添加額外的(:each)模塊來獲得現有的測試通過請幫忙
它看起來像'rspec的-rails'問題。嘗試升級到'rspec-rails 2.13.1'。看看這個問題 - > https://github.com/rails/rails/issues/10376 – usha
@Vimsha,我試過2.13.1和2.14.1,但問題似乎持續存在。 :( – boboverflow
相關?https://github.com/rails/rails/issues/10376 – zetetic