2013-02-19 74 views
0

我在写每个步骤执行之前要运行的钩子。钩子函数基本上处理给这个步骤的参数。StepNode实例没有参数

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

/** @BeforeStep */ 
public function beforeStep($event) { 
    $step_node = $event->getStep(); 
    $args = $step_node->getArguments(); 
    print_r($args); 
    die(); 
} 
  • $step_nodeStepNode
  • $args一个实例应该是的参数有关的阵列到那一步。

对于任何给定的步骤我测试这个,参数数组总是空的。我也尝试使用AfterStep钩子打印出参数,数组仍然是空的。

我错过了如何behat争取参数和处理步骤?

回答

1

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

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

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

一个例子:

/** 
* @Transform /^user (.*)$/ 
*/ 
public function castUsernameToUser($username) 
{ 
    return new User($username); 
}