【发布时间】:2014-01-08 15:17:20
【问题描述】:
我的网站上有一个页面,我正在尝试对其进行测试,该页面要求用户在该页面上至少停留 5 秒钟,然后才能继续。 Capybara 有没有办法让我的 Cucumber 测试在该页面上暂停并等待五秒钟,然后再继续我描述的下一步?
【问题讨论】:
标签: ruby-on-rails ruby cucumber capybara
我的网站上有一个页面,我正在尝试对其进行测试,该页面要求用户在该页面上至少停留 5 秒钟,然后才能继续。 Capybara 有没有办法让我的 Cucumber 测试在该页面上暂停并等待五秒钟,然后再继续我描述的下一步?
【问题讨论】:
标签: ruby-on-rails ruby cucumber capybara
我的步骤定义中有这个:
Given /^I wait for (\d+) seconds?$/ do |n|
sleep(n.to_i)
end
在您的功能中:
Given I am on the whatever page
And I wait for 5 seconds
And I follow "A Link"
# etc...
【讨论】:
step "I wait for 5 seconds"。我用它来为许多其他步骤添加轻微的延迟。
像这样动态定义时间单位也很棒:
Given /^I wait for (\d+) (second|minute|hour)s?$/ do |n, unit|
sleep(eval("#{n.to_i}.#{unit}"))
end
【讨论】:
eval。你只是自找麻烦。 sleep(n.to_i.send(unit))