0

我是 Mink、Behat 等的新手,所以我需要帮助。

我有一个包含一些行的表,我想检查是否删除了一行。

在我的场景中,我有这样的事情:

When I press "Delete"
Then I should be on "/example_url/"
    And I should see "Object list"
    And the response should not contain "Value1" "Value2" "Value3" "Value4"

我该怎么做?我怎么做“响应不应包含一行的某些值”?

我不知道这对 Mink 是否可行,或者我需要使用统一测试。

4

1 回答 1

1

您可以在步骤中使用表格:

And the result table should not contain:
  |Value |
  |Value1|
  |Value2|
  |Value3|
  |Value4|

Behat 会将其作为 TableNode 实例传递给您的 step 方法:

/**
 * @Given /the result table should not contain:/
 */
public function thePeopleExist(TableNode $table)
{
    $hash = $table->getHash();
    foreach ($hash as $row) {
        // ...
    }
}

阅读更多关于用 Gherkin 语言编写功能的信息:http: //docs.behat.org/guides/1.gherkin.html

题外话:请注意,大多数时候直接在您的功能中使用 Mink 步骤并不是最好的主意,因为大多数时候它不是您的业务语言。如果您编写了以下内容,您的场景将更具可读性和可维护性:

When I press "Delete"
Then I should be on the user page
 And I should see a list of users
 And the following users should be deleted:
   |Name   |
   |Biruwon|
   |Kuba   |
   |Anna   |

在您的步骤实现中,您可以通过返回Then实例来使用默认的 Mink 步骤:

/**
 * @Given /^I should see a list of users$/
 */
public function iShouldSeeListOfUsers()
{
    return new Then('I should see "User list"');
}
于 2012-08-06T15:30:30.040 回答