PHPUnit:assertInstanceOf()不起作用

我需要检查一个variables是否是用户types的对象。 用户是我的课$user我的对象

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

这是行不通的,我有一个使用未定义的常量用户 – 假定“用户”

在此先感谢您的帮助

http://apigen.juzna.cz/doc/sebastianbergmann/phpunit/function-assertInstanceOf.html

我认为你使用这个function是错误的。 尝试:

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

或者你可以使用像这样的东西:

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

我通常使用这个当我检查即如果setter方法返回引用自我。

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

无论你在哪里使用::class总是一个好主意。 如果您习惯了这个标准,那么您不必使用FQCN(完全限定的类名),也不必使用反斜杠。 另外,如果IDE知道这里的User不仅仅是一个string,而且是一个类,它将提供更好的function。

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