斷言物件是類的例項

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 會變得脾氣暴躁。