AssertInstanceOf()不工作

我需要检查一个变量是否是 User 类型的对象。 用户是我的类 $user我的对象

$this->assertInstanceOf($user,User);

这是不工作的,我有一个未定义的常量用户假定’用户’的使用

先谢谢你的帮助

75686 次浏览

Http://apigen.juzna.cz/doc/sebastianbergmann/phpunit/function-assertinstanceof.html

我认为你用错了这个函数。试试:

$this->assertInstanceOf('User', $user);

或者你可以使用:

$this->assertInstanceOf(get_class($expectedObject), $user);

我通常在检查 setter 方法是否返回对 self 的引用时使用它。

$testedObj = new ObjectToTest();
$this->assertInstanceOf(
get_class($testedObj),
$testedObj->setSomething('someValue'),
'Setter is not returning $this reference'
);

无论在什么地方,使用 ::class总是一个好主意。如果您习惯了这个标准,就不必使用 FQCNs (完全限定类名)或转义反斜杠。而且,如果 IDE 知道这里的 User不仅仅是一个字符串,而且是一个类,那么它就提供了更好的功能。

$this->assertInstanceOf(User::class, $user);