77

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

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

这不起作用,我使用了未定义的常量用户 - 假定为“用户”

在此先感谢您的帮助

4

3 回答 3

139

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

我认为您错误地使用了此功能。尝试:

$this->assertInstanceOf('User', $user);
于 2013-05-30T10:42:23.677 回答
60

尽可能使用总是一个好主意::class。如果您习惯了这个标准,则不必使用 FQCN(完全限定的类名)或转义反斜杠。此外,如果 IDE 知道User这里不仅仅是一个字符串,而是一个类,那么 IDE 会提供更好的功能。

$this->assertInstanceOf(User::class, $user);
于 2017-05-22T21:35:23.140 回答
7

或者你可以使用类似的东西:

$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'
);
于 2015-02-20T11:52:39.513 回答