我有返回根據主叫方法什麼的私有方法:如何測試在ruby中使用調用者的方法?
private
def aPrivateMethod
r = nil
caller_method = caller[0][/`([^']*)'/, 1]
case caller_method
when "method_1"
r = "I was called by method_1"
when "method_2"
r = "I was called by method_2"
end
return r
end
當編寫測試單元的方法名稱調用這個私有方法不會method_1也不method_2,這將是東西開始與測試我無法找到解決方案來返回測試通過。
我很好奇爲什麼你會想做這樣的事情---我從來沒有試圖測試哪個對象調用另一個對象。在我看來,如果這很重要,那麼被測試的代碼就會過於緊密地耦合,或者需要重構以允許直接進行單元測試。 – Catnapper 2012-08-16 14:32:22
很可能代碼需要重構,但在初始狀態下我看不到。不要問爲什麼。 :) – danizgod 2012-08-17 05:30:25