0

我正在编写一个要在执行每个步骤之前运行的钩子。钩子函数基本上操作给步骤的参数。

这是我正在使用的代码(最后两行用于测试):

/** @BeforeStep */
public function beforeStep($event) {
    $step_node = $event->getStep();
    $args = $step_node->getArguments();
    print_r($args);
    die();
}
  • $step_node是一个实例StepNode
  • $args应该是与该步骤相关的一系列参数。

对于我测试的任何给定步骤,参数数组始终为空。我还尝试使用钩子打印出参数AfterStep,但数组仍然是空的。

我是否遗漏了一些关于 behat 如何抓住论点和处理步骤的东西?

4

1 回答 1

1

getArguments() 返回一个 Behat\Gherkin\Node\TableNode 数组,允许访问表行。例如 :

Given the following users:
  | name          | followers |
  | everzet       | 147       |
  | avalanche123  | 142       |
  | kriswallsmith | 274       |
  | fabpot        | 962       |

您可以尝试解析来自 step_node.getText() 的参数,但使用transformation可能会更好。这将允许您在运行该步骤之前处理任何参数。

Behat Mink 文档中的一个示例:

/**
 * @Transform /^user (.*)$/
 */
public function castUsernameToUser($username)
{
    return new User($username);
}
于 2013-03-25T21:37:28.130 回答