断言对象是类的实例

PHPUnit 提供以下函数来断言对象是否是类的实例:

assertInstanceOf($expected, $actual[, $message = ''])

第一个参数 $expected 是类的名称(字符串)。第二个参数 $actual 是要测试的对象。$message 是一个可选字符串,可以在失败时提供。

让我们从一个简单的 Foo 类开始:

class Foo {

}

在命名空间 Crazy 的其他地方,有一个 Bar 类。

namespace Crazy

class Bar {

}

现在,让我们编写一个基本的测试用例来检查这些类的对象

use Crazy\Bar;

class sampleTestClass extends PHPUnit_Framework_TestCase
{

    public function test_instanceOf() {

        $foo = new Foo();
        $bar = new Bar();

        // this would pass
        $this->assertInstanceOf("Foo",$foo);

        // this would pass
        $this->assertInstanceOf("\\Crazy\\Bar",$bar);

        // you can also use the ::class static function that returns the class name
        $this->assertInstanceOf(Bar::class, $bar);

        // this would fail
        $this->assertInstanceOf("Foo", $bar, "Bar is not a Foo");

    }
}    

请注意,如果发送不存在的类名,PHPUnit 会变得脾气暴躁。