我需要检查变量是否是User类型的对象。
用户是我的班级$user
我的对象
$this->assertInstanceOf($user,User);
这不起作用,我使用未定义的常量用户 - 假定'用户'
提前感谢您的帮助
答案 0 :(得分:108)
http://apigen.juzna.cz/doc/sebastianbergmann/phpunit/function-assertInstanceOf.html
我认为您使用此功能是错误的。尝试:
$this->assertInstanceOf('User', $user);
答案 1 :(得分:26)
在任何地方使用::class
总是一个好主意。如果您习惯了这个标准,则不必使用FQCN(完全限定的类名)或转义反斜杠。此外,如果IDE知道这里的User
不仅仅是一个字符串,而是一个类,它提供了更好的功能。
$this->assertInstanceOf(User::class, $user);
答案 2 :(得分:5)
或者您可以使用以下内容:
$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'
);