Symfony 给定的对象不是类的实例。当尝试在PHPUnit测试中设置成员变量时,此方法声明错误
在尝试设置类的“logger”属性时,出现以下错误 ReflectionException:给定对象不是该类的实例 方法是在中声明的 类层次结构如下所示:Symfony 给定的对象不是类的实例。当尝试在PHPUnit测试中设置成员变量时,此方法声明错误,symfony,reflection,phpunit,php-7,symfony-3.4,Symfony,Reflection,Phpunit,Php 7,Symfony 3.4,在尝试设置类的“logger”属性时,出现以下错误 ReflectionException:给定对象不是该类的实例 方法是在中声明的 类层次结构如下所示: 类修订0扩展基础 abstract class Base扩展计划\PlanBase 抽象类PlanBase使用LoggerTrait(使用LoggerTrait;) LoggerTrait看起来像: /** * @var LoggerInterface */ protected $logger; /** * @required *
类修订0扩展基础
abstract class Base扩展计划\PlanBase
抽象类PlanBase
使用LoggerTrait
(使用LoggerTrait;
)
LoggerTrait
看起来像:
/**
* @var LoggerInterface
*/
protected $logger;
/**
* @required
* @param LoggerInterface $logger
*/
public function setLogger(LoggerInterface $logger)
{
$this->logger = $logger;
}
是否有什么东西使我无法在测试中设置记录器?您的
ReflectionMethod->invoke()
调用中的第一个参数错误。它应该是AppBundle\Services\Courses\Revision0的一个实例。另请参见此处:您的ReflectionMethod->invoke()
调用中的第一个参数是错误的。它应该是AppBundle\Services\Courses\Revision0的一个实例。另请参见此处:您的ReflectionMethod->invoke()
调用中的第一个参数是错误的。它应该位于'AppBundle\Services\Courses\Revision0'
@thehenny的实例中,谢谢您的评论。请随意提交答案,我很乐意接受。您的ReflectionMethod->invoke()
调用中的第一个参数是错误的。它应该位于'AppBundle\Services\Courses\Revision0'
@thehenny的实例中,谢谢您的评论。请随意提交答案,我很乐意接受。我也有同样的问题。我知道OP需要类Revision0
的实例,但如何动态创建它,而不必硬编码new Revision0()
?没关系。我自己找到了答案。我也有同样的问题。我知道OP需要类Revision0
的实例,但如何动态创建它,而不必硬编码new Revision0()
?没关系。我自己找到了答案。使用
/**
* @var LoggerInterface
*/
protected $logger;
/**
* @required
* @param LoggerInterface $logger
*/
public function setLogger(LoggerInterface $logger)
{
$this->logger = $logger;
}