我尝试Time.now在RSpec中存根www.example.com,如下所示:
it "should set the date to the current date" do
@time_now = Time.now
Time.stub!(:now).and_return(@time_now)
@thing.capture_item("description")
expect(@thing.items[0].date_captured).to eq(@time_now)
end
这样做时,我得到以下错误:
Failure/Error: Time.stub!(:now).and_return(@time_now)
NoMethodError:
undefined method `stub!' for Time:Class
知道为什么会这样吗?
4条答案
按热度按时间5m1hhzi41#
根据您的RSpec版本,您可能希望使用较新的语法:
参见RSpec Mocks 3.3
hwamh0ep2#
从
ActiveSupport
到travel_to
的转换就很成功:gupuwyp23#
可以使用timecop,测试前冻结时间,测试后解冻。
或定义特定时间
并用于
Timecop.freeze(time_now)
和测试中nwwlzxa74#
您始终可以使用timecop: