2014-11-14 5 views
1

Behat 단계에서 인수로 배열을 전달할 수 있습니까?Behat 단계의 인수로 배열

When I select <"Alex","Sergey"> in "users" 

나는이 상황에 내가 사용할 수 있다는 것을 알고 : 예를 들어

는 다음과 같이 원하는

When I select "Alex" from "users" 
And I additionally select "Sergey" from "users" 

하지만 문제는 여기에 배열을 사용하는 방법에 대한 것입니다.

답변

1

가능한 해결책을 찾았습니다. step argument transformations을 만들 수 있습니다. 그런 다음 쉼표로 구분 된 문자열을 배열로 쉽게 변환 할 수 있습니다.

단계 코드

Given article "Test article" is published at "Foo, Bar"

단계 Behat :

/** 
    * @Given /^article "([^"]*)" is published at "([^"]*)"$/ 
    */ 
    public function givenArticleIsPublishedAtMediums($title, $mediums){ 
    // Explode mediums from a string. 
    foreach (explode(',', $mediums) as $medium) { 
     // ... 
    } 
    } 
+0

단계 정의 및 컨텍스트 메소드가 이와 유사하게 보이는 것을 공유 하시겠습니까? –

3

이 내가

해낸 것입니다

UPDATE는 또 다른 옵션은 쉼표로 구분 된 문자열을 폭발하는 것입니다

Given "foo" translations equal "[foo,bar,bazz]" 

/** 
* @Transform /^\[(.*)\]$/ 
*/ 
public function castStringToArray($string) 
{ 
    return explode(',', $string); 
} 

/** 
* @Given /^"([^"]*)" translations equal "([^"]*)"$/ 
*/ 
public function translationsEqual($phraseName, $translations) 
{ 
    // we have an array now 
    var_dump($translations); 
}