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
上存在与其他特征方法的冲突
setMink
方法仅在MinkDictionary
特征中定义。
问题是OrderDictionary
和FeatureContext
都在使用MinkDictionary
中的方法。这就是我在use MinkDictionary
中添加OrderDictionary
的原因。这是不允许的?如果您对此进行评论,那么一切正常,但编辑器显示了许多未解决的方法 - 它不知道它们来自何处。
答案 0 :(得分:0)
当然它会编译两次相同的特性,因为你在类FeatureContext中“使用”MinkDictionary两次 - 首先在类本身中,第二次在OrderDictionary中。
只需从FeatureContext类中删除“使用MinkDictionary”语句