У меня проблема с тем, что я проверяю, что текущее время было вставлено в html (используется для сортировки time_ago
с помощью javascript).
Текущее время Unix (эпоха) отображается в атрибуте данных данного элемента html, в данном случае, например:
<a href="/somewhere" data-last-points-awarded-at="1331606458">Something Happend</a>
Но когда мой тест запускается:
recipe = Factory(:recipe, name: "Apple Pie", user: @user)
visit some_path
time_in_layout = find('a[data-last-points-awarded-at]')['data-last-points-awarded-at']
current_time = Proc.new { Time.now }.call.to_i.to_s
time_in_layout.should eql(current_time)
После запуска моего теста он не проходит ... но едва:
Failure/Error: time_in_layout.should eql(current_time)
expected: "1331606459"
got: "1331606458"
(compared using eql?)
Все хорошо, тест в значительной степени так, как я на самом деле хочу, чтобы он работал, однако, процесс возвращает время, которое на секунду позже, как я могу это исправить? Например, как я могу заблокировать время в начале теста, могу ли я вообще так поступить?