断言公共保护和私有属性的价值
PHPUnit 有两个断言来检查类属性的值:
assertAttributeSame($expected, $actualAttributeName, $actualClassOrObject, $message = '')
assertAttributeNotSame($expected, $actualAttributeName, $actualClassOrObject, $message = '')
无论可见性如何,这些方法都将检查对象属性的值。
让我们从一个要测试的类开始。它是一个简化的类,有三个属性,每个属性具有不同的可见性:
class Color {
public $publicColor = "red";
protected $protectedColor = "green";
private $privateColor = "blue";
}
现在,要测试每个属性的值:
class ColorTest extends PHPUnit_Framework_TestCase
{
public function test_assertAttributeSame() {
$hasColor = new Color();
$this->assertAttributeSame("red","publicColor",$hasColor);
$this->assertAttributeSame("green","protectedColor",$hasColor);
$this->assertAttributeSame("blue","privateColor",$hasColor);
$this->assertAttributeNotSame("wrong","privateColor",$hasColor);
}
}
正如你所看到的,断言适用于任何可见性,因此可以轻松查看受保护和私有方法。
此外,还有 assertAttributeEquals,assertAttributeContains,assertAttributeContainsOnly,assertAttributeEmpty ……等,匹配大多数涉及比较的断言。