断言对象是类的实例
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 会变得脾气暴躁。