我刚才读到我可以使用以下格式的标记:我的上下文方法中的参数给定注释,但是当我这样做时它告诉我该步骤未定义...
/**
* @Given I am logged in as :username
*/
public function iAmLoggedInAs( $username )
{
// ...
}
这会返回Undefined step "I am logged in as 'disco-superuser'"
,但是......
/**
* @Given /^I am logged in as "([^"]*)"$/
*/
public function iAmLoggedInAs( $username )
{
// ...
}
......工作正常。
我在这里缺少什么。
Behat版本:2.5.3
答案 0 :(得分:1)
对于那些"不确定":这个功能被称为萝卜模式,这是Behat 3中的新功能。您可以在official docs中阅读一些内容或挖掘{{3更多详细信息的类。
它会抛出未定义的步骤定义异常,因为您使用的是单引号,前提是您提供了正确的详细信息。再次使用双引号检查,必须修复它。 TurnipPatternPolicy
类中的TOKEN_REGEX
允许单引号和双引号,以及根本没有引号,TurnipPatternPolicy
也是给出了所有三种情况的例子,我完全忽略了这些情况。
此外,如果有人尝试,你不能在一个定义(萝卜和正则表达式)documentation中组合不同类型的模式。阅读like I did了解原因和其他有用信息。