2013-02-19 108 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); 
}