我将 Grails 2.1.1 与 Cucumber 和 Geb 一起使用。我有一个包含 2 个场景的 Auth.feature。一种用于成功验证,另一种用于测试无效凭据。
我认为我必须解决这个问题的方法是让 geb 从第一个场景中注销用户,然后它才能运行第二个场景。这是因为我的 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
}