【发布时间】:2016-06-26 15:34:08
【问题描述】:
目前正在为我的 Rails 应用程序的时间跟踪功能编写测试。我想不出一种方法来模拟点击计时器上的“播放”按钮,等待几秒钟,点击暂停,然后提交表单(创建一个新的 Timestamp 对象)。
test "track time with stopwatch" do
visit new_project_timestamp_path(@project)
find('#play_button').click
sleep 4.0
find('#pause_button').click
click_button "submit_new_timestamp"
visit project_path(@project)
assert page.has_content? "4 seconds"
end
^这是我想要它做的事情的要点,但是 sleep 显然不起作用,因为它完全挂起线程,而我希望测试在秒表做它的事情时有点“等待”几秒钟。上述测试失败,因为没有实际跟踪时间;在计时器的眼中,播放后立即单击暂停,因此提交表单时没有记录实际时间,这当然会引发验证错误。
有没有一种方法可以模拟等待几秒钟而不实际挂起线程?
【问题讨论】:
标签: jquery ruby-on-rails capybara integration-testing testunit