2016-01-21 41 views
0

我已經開始使用Behat進行行爲測試。Behat停止生成方法存根的正則表達式

我成功地爲我的Symfony2項目設置了behat,開始編寫場景。我很高興與Behat給我方法存根與正則表達式來填補,對應於我的方案中的步驟。

然而,過了一段時間,貝哈特停止生成的正則表達式,並給我存根方法是這樣的:

/** 
* @Given I am on the page :arg1 <-- this is what I get 
*/ 
public function iAmOnThePage($arg1) 
{ 
    throw new PendingException(); 
} 

我寧願它像befor工作,比如:

/** 
* @Given /^I open "([^"]*)"$/ <--- I'd expect this 
*/ 
public function iOpen($arg1, $sessionName=null) 
{ 
    $this->getSession($sessionName)->visit($arg1); 
} 

我去的時候一定已經搞混了,但不知道爲什麼默認行爲會突然改變。

有什麼建議嗎?

回答

1

你更新了你的Behat版本嗎? 在版本3中它與:arg和V2.5中的正則表達式一起使用。

如果你喜歡舊的工作方式,你可以按照manual

實現SnippetAcceptingContext接口告訴Behat 您的上下文需要在其內部生成片段。貝哈特 會產生簡單的圖案片段你,但如果能經常 表達式是你的事,貝哈特可以生成它們,而是如果你 貝哈特\實施貝哈特\背景\ CustomSnippetAcceptingContext接口 代替,並添加getAcceptedSnippetType()方法返回字符串 「正則表達式」 :

public static function getAcceptedSnippetType() 
{ 
    return 'regex'; 
} 
+0

是的,我開始是一個較低版本的Behat。然後升級。我在腦海中忽略了這一事實,因爲它僅僅處於測試環境中,我必須在全局運行'composer update'。 2.5是最新的「穩定」版本嗎? – luqo33

+0

@ luqo33 3.0是最新的穩定版 –