Behat - 如何实现针对所有页面的步骤定义?

问题描述

我正在尝试测试一个功能并确保它在任何页面显示出来。如何在我的上下文类中实现自定义步骤,例如

Scenario: ...
  Given I am on any page
  Then I should see "..."
  Then ...

无需为网站的 100 个不同部分(example.com/a/、example.com/b/、example.com/a/a/ ...)使用 100 个单独的行调用 MinkContext::visit ?

解决方法

您可以定义自定义步骤,例如:

/**
 * @Given /^I am on (.*) page$/
 */
public function iAmOnPage($page)
{
    // call method to navigate to page identified by key
}

$page 参数可以是标识页面的键或 base_url 的相对路径,这取决于您如何组织代码。