我在嘗試確定如何測試簡單計算關聯記錄中值的平均值的方法。我關心的是測試實現與返回的實際結果。如何在Ruby on Rails中使用Rspec測試鏈式方法
說我有以下型號...
class User
has_many :interviews
def interview_grade
interviews.average(:score).round unless interviews.empty?
end
end
class Interview
belongs_to :user
end
而在user_spec.rb
我有...
這些測試都通過了,但感覺脆弱的我。如果interview_grade
實際上應該計算得分(例如)的總和。由於我只是測試一個特定的方法鏈被調用,所以這個通過測試不會告訴我結果實際上是不正確的。
我已經嘗試使用存根user.interviews
來設置測試的可用分數,但由於關聯的延遲加載方式,這在Rails 3中似乎很棘手。即我不能只創建一個Interview對象數組,因爲它不響應平均method
。
任何建議非常感謝。
我更喜歡使用這裏的嘗試,我沒有想到這一點。 但是,我試圖避免使用工廠,因爲它們很慢。 我寧願模擬user.interviews,但正如我在問題中提到的,由於關聯的延遲加載,我還沒有想出在Rails 3中這樣做的好方法。 –