斷言物件是類的例項
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 會變得脾氣暴躁。