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 に答える