PHPUnit:assertInstanceOf()不起作用

时间:2013-05-30 10:36:37

标签: php phpunit assert assertions

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

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

这不起作用,我使用未定义的常量用户 - 假定'用户'

提前感谢您的帮助

3 个答案:

答案 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'
);