次のような構造のテスト スイートがあります。
describe ... do
[list of dates].each do
describe
before(:all) do
base_date = ...
end
describe ... do
[list of times].each do
describe ... do
before(:all) do
base_time = base_date + ...
DateTime.stub!(:now).and_return(base_time)
end
describe ... do
<test using records within date-time range based on base_time>
end
describe ... do
<another test using records within date-time range based on base_time>
end
end
end
end
end
end
end
最初のテストは DateTime(now) == base_time ですが、2 番目のテストは DateTime(now) == my computer's date-time であり、スタブが有効ではないことを示しています。stub!
呼び出しを各ループに移動するとdescribe
問題は解決しますが、記述どおりに機能しない理由を理解したいと思います。