ruby-on-rails - capybara 测试中的 stub 时间

标签 ruby-on-rails selenium capybara stubbing

我有一个创建文档快照的页面。例如,该文档的标题是时间戳(2014 年 9 月 27 日下午 4:01:10)。我正在为此页面编写一个测试,并希望 stub 时间以使其不会改变。

我现在拥有的是 Time.stubs(:now).returns(Time.parse("2014-1-2 11:00:00")) 但是当我这样做时我收到一条错误消息:

Capybara::FrozenInTime: time appears to be frozen, Capybara does not work with libraries which freeze time, consider using time travelling instead

在这里打发时间的最佳方法是什么?

最佳答案

现在使用 Rails includes support直接用于时间旅行,例如:

feature 'Time travel verifier' do
  include ActiveSupport::Testing::TimeHelpers

  scenario 'works in the past' do
    travel_to(1.day.ago) do
      visit time_travel_verification_path
      expect(page).to have_content('WOAH Time Travel!')
    end
  end
end

关于ruby-on-rails - capybara 测试中的 stub 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26088087/

相关文章:

ruby-on-rails - Capybara should have_content 等待的时间不够长

ruby-on-rails - 如何在Capybara中设置 session 值?

ruby-on-rails - 如何在 ruby​​ API 中创建异步请求、阻塞方法

ruby-on-rails - 在 docker compose 上运行时无法连接到 Rails 应用程序中的数据库

ruby-on-rails - 哪些记录受 ActiveRecord 依赖 : destroy?

python - 从页面获取链接 - python

ruby-on-rails-3 - 使用 Capybara + Selenium 时禁用 JavaScript

ruby-on-rails - Rails ActiveRecord 关系 - 避免编写 .blank?检查

c# - Selenium RC 记忆 "End of the World"

android - 选择 selenium grid2 上的特定节点来运行测试