1

私はキュウリとゲブでGrails2.1.1を使用しています。2つのシナリオを含むAuth.featureがあります。1つは正常に認証するためのもので、もう1つは無効な資格情報をテストするためのものです。

私がこれを解決しなければならないと思う方法は、gebが2番目のシナリオを実行する前に、最初のシナリオからユーザーをログアウトさせることです。これは、Givenステップがログインページにいることを確認するためです。シナリオ1が実行された後、ダッシュボードページが表示されます。

私の質問は、(a)シナリオを完了する前にgebを使用して有効なユーザーをサインアウトするのか、それとも(b)シナリオ間で最初からやり直す方法があるのか​​ということだと思います。

今、私は(a)を実装しましたが、問題なく動作します。これが最適かどうかを知りたいだけです。

これが私の特徴です

Feature: login to system
  As a user of the system
  I want to log in to the application
  so that I can use it

  Scenario: login
    Given I access the login page
    When I enter valid credentials
    Then I see the dashboard

  Scenario: auth fail
    Given I access the login page
    When I enter invalid credentials
    Then I see appropriate error messages

そして、これが私のGebステップです

Given(~'^I access the login page$') {->
  to LoginPage
  at LoginPage
}

When(~'^I enter valid credentials$') {
  page.add('user_10001@test.com', '10001')
}

Then(~'^I see the dashboard$') {->
  at DashboardPage
}

Then(~'^I see an error message on the login page$') { ->
  at LoginPage
}

When(~'^I enter invalid credentials$') { ->
  page.add('baduser', 'paddpassword')
}

Then(~'^I see appropriate error messages$') { ->
  at LoginPage
  // check for error message
}
4

2 に答える 2

3

私が行ったいくつかの調査に基づくと、これを処理する方法はいくつかあるようです。

  • シナリオの最後にログアウトすることで(または最初にログアウトすることもできます)、私がすでに行っているように
  • 独自のシナリオからログアウトする
  • env.groovy Beforeフックに、次のように追加します。to LogoutPage
  • バックグラウンドを使用してログアウトする
于 2012-12-31T16:00:31.917 に答える
0

env.groovyのAfterフックに次の行を追加します。

bindingUpdater.browser.clearCookies()
于 2013-01-17T10:59:31.483 に答える