斷言公共保護和私有屬性的價值
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 ……等,匹配大多數涉及比較的斷言。