2015-05-08 18 views
2

RSpec mocks可以返回多個值。如何在RSpec mocks中使用動態值?

allow(die).to receive(:roll).and_return(1, 2, 3) 

如何返回一個動態值,如:

allow(clock).to receive(:time).and_return Time.now.to_i 

始終返回的第一個值。

是否有可能讓它評估每個電話time的表達式?

+1

警惕關於採取這種做法。在測試中出現非確定性行爲可能會導致嚴重的調試問題。 –

回答

2

只是刪除and_return並傳遞塊:

allow(clock).to receive(:time) do 
    Time.now.to_i 
end 
相關問題