這是在我的項目的典範 -測試方法委託給另一個對象
class Subscription < ActiveRecord::Base
def active?
SubscriptionValidationPolicy.new(self).active?
end
end
當我的單元測試active?
,我應該設置一個subscription
活動和非活動狀態和上還是應該斷言我爲SubscriptionValidationPolicy
做了一個雙精度型,以某種方式注入它,然後確定是否調用active?
?或者是否全都只是自以爲是的我怎麼去測試這個。無論如何,我將要測試SubscriptionValidationPolicy
,因此對於Subscription#active?
方法執行「基於狀態」的測試感覺是多餘的。
很想在這一些想法:)
如果你測試的政策反正比我會使用雙重,但這主要是基於意見的... – spickermann
我甚至不打擾現在測試該方法。這是一個簡單的委託,沒有任何條件邏輯。再說一遍,我也會說你的模型不應該有這樣的業務邏輯代理。 –