0

我刚刚开始使用 Cucumber,我在 Grails 2.1.1 应用程序中使用 Geb。我已经完成了第一个测试,测试成功登录。

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 "user_10001" and "10001"
    Then I see the dashboard

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

When(~'^I enter "([^"]*)" and "([^"]*)"$') { String username, String password ->
  page.add(username, password)
}

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

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

这很好用。我还想测试登录失败时会发生什么。我意识到这是另一种情况,但它是另一个功能吗?或者它是同一功能的附加场景?任何指导将不胜感激。

4

1 回答 1

1

特性是一种功能。将场景划分为多个功能的唯一原因是使文件的长度更短,并使有关功能的信息更易于搜索。

您的方案是身份验证功能的一部分。但是如果你有很多与身份验证相关的功能(几个登录页面、忘记密码、短信/电话确认),身份验证功能可以分为几个功能文件放入身份验证文件夹中。这取决于您的应用程序

我认为在任何情况下成功和不成功登录的场景都更适合同一个文件。


此外,您的场景对我来说看起来有点脆弱和必要。阅读以下:

我会这样写:

Scenario: Login
  Given I'm at login page
  When I login with valid credentials
  Then I see the dashboard
于 2012-12-30T17:43:43.647 回答