0

PHP 似乎试图两次编译相同的特征。

use Behat\MinkExtension\Context\MinkDictionary;
class FeatureContext
{
    use MinkDictionary, OrderDictionary;
}

use Behat\MinkExtension\Context\MinkDictionary;
trait OrderDictionary
{
    //if you comment out this line, everything works, but methodFromMinkTrait is
    //unresolved
    use MinkDictionary;

    public function myMethod($element, $text)
    {  
       //some method that uses methods from MinkDictionary
       return $this->methodFromMinkTrait();
    }
}

编译失败并出现致命错误

致命错误:Trait 方法 setMink 尚未应用,因为在 LunchTime\DeliveryBundle\Features\Context\FeatureContext 上与其他 trait 方法有冲突

setMink方法仅在MinkDictionarytrait 中定义。

问题是两者OrderDictionaryFeatureContext使用MinkDictionary. 这就是我添加的use MinkDictionary原因OrderDictionary。这是不允许的吗?如果您将其注释掉,那么一切正常,但编辑器显示了许多未解决的方法 - 它不知道它们来自哪里。

4

1 回答 1

0

当然它编译了两次相同的特征,因为你在类 FeatureContext 中“使用”了 MinkDictionary 两次——第一次在类本身中,第二次通过 OrderDictionary。

只需从 FeatureContext 类中删除“use MinkDictionary”语句

于 2012-08-08T20:37:48.933 回答