Behat停止为方法存根生成正则表达式

时间:2016-01-21 14:26:32

标签: symfony behat

我开始使用Behat进行行为测试。

我设法为我的Symfony2项目设置了behat,开始编写方案。我对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 个答案:

答案 0 :(得分:1)

您是否更新了Behat的版本? 在版本3中,它使用:arg,在v2.5中使用正则表达式。

如果您喜欢旧的工作方式,可以按照manual

  

实现SnippetAcceptingContext接口告诉Behat   您的上下文期望在其中生成片段。贝哈特   将为您生成简单的模式片段,但如果是常规的   表达式是你的事,Behat可以生成它们,如果你   实现Behat \ Behat \ Context \ CustomSnippetAcceptingContext接口   而是添加getAcceptedSnippetType()方法返回字符串   &#34;正则表达式&#34;:

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