hsg*_*ert 10 rspec capybara ruby-on-rails-3 capybara-webkit timecop
我在使用rspec,capybara,capybara-webkit和timecop看到一些集成规范中的错误.
Capybara::FrozenInTime:
time appears to be frozen, Capybara does not work with libraries which freeze time, consider using time travelling instead
Run Code Online (Sandbox Code Playgroud)
我知道冻结时间的唯一宝石是Timecop,但我没有在失败的测试用例中使用它.
由于错误只是偶尔发生,我甚至无法知道它在改变之后是否消失.
Mat*_*sel 10
错误消息的结尾包含解决方案:
考虑使用时间旅行而不是
只需Timecop.freeze改为Timecop.travel. Timecop.freeze 打破了Capybara的自动等待功能.
另外,我会Timecop.return在一个后块中调用,因为它将与最近的旅行块相关联:
after :each do
Timecop.return
end
Run Code Online (Sandbox Code Playgroud)
我找到的解决方案是添加
before :each do
Timecop.return
end
Run Code Online (Sandbox Code Playgroud)
在spec_helper.rb中.
这样我们就保证在每次测试之前不会冻结时间,尽管只有那些有问题的是在不同的webdriver中执行的rack-test.就我而言capybara-webkit.
| 归档时间: |
|
| 查看次数: |
3199 次 |
| 最近记录: |