2015-09-28 77 views
1

我知道如何檢查一個模型中是否沒有創建記錄。如何檢查在RSpec/Rails的所有模型中是否未創建記錄?

expect{Counter.increment}.to_not change{Counter.count}.by(1) 

https://www.relishapp.com/rspec/rspec-expectations/v/2-2/docs/matchers/expect-change#expecting-no-change

現在,有一種方法來檢查,如果沒有記錄是在RSpec的/ Rails的所有車型中創造出來的?

+1

爲什麼你認爲你需要這樣一個廣泛的測試?你想達到什麼目的? – spickermann

+0

我需要檢查一個方法調用時是否沒有副作用。 – user872176

回答

2

這是如何檢查的記錄數中的所有應用程序的表:

ActiveRecord::Base.send(:subclasses).inject(0){ |result, a| result += a.all.size } 

在測試情況下,使用它關於 - 嗯..我看不出有任何理由這樣做 - 考慮重構了測試而不是採取這種駭人的東西。

如果你仍然想使用它,它的測試..好,去什麼是我原來的答覆:

expect(your_something).to_not change{ ActiveRecord::Base.send(:subclasses).inject(0){ |result, a| result += a.all.size } } 
+0

這個工程!謝謝! – user872176

+0

我認爲你是對的。測試用例不應該如此hachery ..無論如何這是很好的答案,謝謝! – user872176

+0

@ user872176沒有probs,歡迎您! –

相關問題