0

我的场景中有以下内容:

And I click the link Log out
Then I should see the login page

单击该Log out链接会将用户发送到 /log_out,该链接将重定向回登录页面。Webrat 失败,因为它正在寻找“登录”,但 log_out 页面为空(它只是一个破坏会话并重定向到 / 的 codeigniter 函数)

让 webrat 意识到它需要在重定向结束时读取页面的最佳方法是什么?

4

1 回答 1

0

一种简单但低效的方法是仅在执行重定向所需的大致时间添加睡眠。

And I click the link Log out
And I wait for 5 seconds
Then I should see the login page

步骤定义

When /^I wait for (\d+) seconds$/ do |time|
  sleep time.to_i
end

但是,当涉及到网络延迟时,此解决方案非常脆弱,您的等待可能太长或太短。更好的方法是睡觉直到您要查找的内容出现。

And I click the link Log out
Then within 30 seconds, I should see the login page

步骤定义

Then /^within (\d+) seconds, I should see the login page$/ do |time|
  sleep time.to_i until page.has_text? "Login"
  page.should have_content "Login"
end

如果您发现自己使用等待其他步骤,则可以概括逗号后的其余步骤。

于 2012-08-14T06:39:11.277 回答