assertFileExists 斷言文件存在
assertFileNotEquals 斷言文件內容不等于
assertFileNotExists 斷言文件不存在
XML相關
assertXmlFileEqualsXmlFile 斷言XML文件內容相等
assertXmlFileNotEqualsXmlFile 斷言XML文件內容不相等
assertXmlStringEqualsXmlFile 斷言XML字符串等于XML文件內容
assertXmlStringEqualsXmlString 斷言XML字符串相等
assertXmlStringNotEqualsXmlFile 斷言XML字符串不等于XML文件內容
assertXmlStringNotEqualsXmlString 斷言XML字符串不相等
有返回值的方法或函數根據其類型選擇相應的斷言,下面是一個簡單例子。
PHP代碼
class UnitTest extends PHPUnit_Framework_TestCase
{
/**
* 測試返回值為布爾類型
*/
public function testReturnBool()
{
// 實際情況把TRUE和FALSE換為被測試方法或函數
$this->assertTrue(TRUE);
$this->assertFalse(FALSE);
}
/**
* 測試返回值為字符串類型
*/
public function testReturnString()
{
$expected = 'string';
// 實際情況把下面的'string'換為被測試方法或函數
$result = 'string';
$this->assertEquals($expected, $result);
}
/**
* 測試返回值是數字類型
*/
public function testReturnInt()
{
$expected = 10;
// 實際情況把20換為被測試方法或函數
$result = 20;
$this->assertGreaterThan($expected, $result);
}
/**
* 測試返回值是數組類型
*/
public function testReturnArray()
{
// 實際情況把$result賦值為被測試方法或函數
$result = array('test' => 'hello');
// 實際情況把'test'換為要測試的鍵名稱
$this->assertArrayHasKey('test', $result);
}
/**
* 測試返回值是對象類型
*/
public function testReturnObject()
{
// 實際情況把$this換為期望的對象
$expected = $this;
// 實際情況把$this換為被測試方法或函數
$result = $this;
$this->assertSame($expected, $result);
}
}
?>
無返回值的方法,可以通過其他方法讀取屬性,也可以使用對象類型中的斷言來判斷屬性的改變。
PHP代碼
/**
* Unit類,有一個無返回值方法
*/
class Unit
{
protected $name;
/**
* 設置name屬性
*/
public function setName($value)
{
$this->name = $value;
}
}
?>
PHP代碼
require_once 'Unit.php';
class UnitTest extends PHPUnit_Framework_TestCase
{
/**
* 測試無返回值的方法
*/
public function testsetName()
{
$expected = 'Hello';
$o = new Unit();
$o->setName('Hello');
$this->assertAttributeEquals($expected, 'name', $o);
}
}
?>
編寫測試
編寫測試的原則是,盡可能測試每種不同的參數調用和不同的返回結果類型,既要測試成功的情況,也要測試失敗的情況;無返回值的情況,要測試屬性改變、輸出內容、異常類型等;測試后記得要恢復現場。
在這里做了超出自己能力的事并不光榮。在你寫某個函數之前,你只想讓它做加法,但它卻能做乘法,而且單元測試正確通過。我們來看看它是怎么做到的。
PHP代碼
/**
* 計算器類
*/
class Calculator
{
/**
* 做加法運算
*
* @param int $a
* @param int $b
* @return int
*/
public function add($a, $b)
原文轉自:http://www.uml.org.cn/Test/200910169.asp