在集成测试中是否有办法操纵cookie的到期日期(以测试是否正确考虑了它)。例如,如果测试中已存在cookies['user_id']
,请按照以下方式操作:
cookies['user_id'].expires = Time.zone.now - 1.day
(这会返回undefined method 'expires='
)
我在Rails中使用MiniTest。
答案 0 :(得分:1)
您可以使用TimeCop计算考试时间:
def setup
do_something_which_sets_cookie
Timecop.freeze(1.month.from_now)
# or how ever long it takes the cookie to expire
end
def teardown
Timecop.return
end
如果您要测试的是应用程序在一段时间后的行为方式而不将测试与实现细节联系起来,那么这可能是一个很好的方法。
否则,您只需确保在设置到期之前cookie已存在:
cookies['user_id'].expires = Time.zone.now - 1.day if cookies['user_id']