2013-02-19 2 views
0

모든 단계를 실행하기 전에 실행되도록 후크를 작성하고 있습니다. 후크 기능은 기본적으로 단계에 주어진 인수를 조작합니다. 여기 StepNode 인스턴스에는 인수가 없습니다.

내가 사용하고 코드입니다 (마지막 두 줄은 테스트를위한) :

/** @BeforeStep */ 
public function beforeStep($event) { 
    $step_node = $event->getStep(); 
    $args = $step_node->getArguments(); 
    print_r($args); 
    die(); 
} 
  • $step_node이 관련된 인수의 배열 될 예정이다 StepNode
  • $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를 사용하는 것이 좋을 것이다. 이렇게하면 단계가 실행되기 전에 인수를 처리 할 수 ​​있습니다. Behat 밍크 문서에서

한 예 :

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