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