无法识别:arg风格代币

时间:2014-08-24 08:04:27

标签: php behat

我刚才读到我可以使用以下格式的标记:我的上下文方法中的参数给定注释,但是当我这样做时它告诉我该步骤未定义...

/**
 * @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

1 个答案:

答案 0 :(得分:1)

对于那些"不确定":这个功能被称为萝卜模式,这是Behat 3中的新功能。您可以在official docs中阅读一些内容或挖掘{{3更多详细信息的类。

它会抛出未定义的步骤定义异常,因为您使用的是单引号,前提是您提供了正确的详细信息。再次使用双引号检查,必须修复它。 TurnipPatternPolicy类中的TOKEN_REGEX允许单引号和双引号,以及根本没有引号,TurnipPatternPolicy也是给出了所有三种情况的例子,我完全忽略了这些情况。

此外,如果有人尝试,你不能在一个定义(萝卜和正则表达式)documentation中组合不同类型的模式。阅读like I did了解原因和其他有用信息。