我开始使用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);
}
当我走的时候,我一定是搞砸了,但不知道为什么默认行为会突然改变。
有什么建议吗?
答案 0 :(得分:1)
您是否更新了Behat的版本?
在版本3中,它使用:arg
,在v2.5中使用正则表达式。
如果您喜欢旧的工作方式,可以按照manual。
实现SnippetAcceptingContext接口告诉Behat 您的上下文期望在其中生成片段。贝哈特 将为您生成简单的模式片段,但如果是常规的 表达式是你的事,Behat可以生成它们,如果你 实现Behat \ Behat \ Context \ CustomSnippetAcceptingContext接口 而是添加getAcceptedSnippetType()方法返回字符串 &#34;正则表达式&#34;:
public static function getAcceptedSnippetType()
{
return 'regex';
}