1 测试类继承于PHPUnit_Framework_TestCase ,这样就可以使用象setUp(),tearDown()等方法了。每次调用测试方法都会 调用setup(),tearDown,比如
有两个测试方法add,jian, 这会调用方法顺序如下:setup()->add()->setup()->jian()->tearDown,除外还有setUpBeforeClass,tearDownAfterClass 这两个属性静态方法,在测试类第一测试时调用setUpBeforeClass,和最后一次次测试时调用tearDownAfterClass
2测试方法必须为public权限,一般以test开头,或者你也可以选择给其加注释@test来表明该函数为测试函数
案例测试代码
业务类demo.php
<?php
//业务类定义
class Demo{
public function add($a, $b){
return $a + $b;
}
public function jian($a, $b){
return $a - $b;
}
}
?>
对业务类写测试代码。
demoTest.php
<?php
//加载phpunit 框架
require_once 'PHPUnit/Autoload.php';
//导入测试类
require("demo.php");
class DemoTest extends PHPUnit_Framework_TestCase{
//共享资源
protected $_obj;
// SetUp方法是在每个测试用例运行前进行一些初始化的工作,比如创建业务对象,让其他测试方法也可以使用业务对象,或数据库连接对象
public function setUp(){
$this->_obj = new Demo();
}
//tearDown则在每个测试用例运行后进行一些比如资源的释放等工作的工作
public function tearDown(){
unset($this->_obj);
}
//testAdd 方法名以test* 开头
public function testAdd(){
$res = $this->_obj->add(1, 2);
//phpunit的断言assertEquals判断输出是否和预期的相等,phpunit 还提供很多断言方法
$this->assertEquals(3, $res);
}
//testAdd2 方法注解为@test
/**
* @test
*/
public function testAdd2(){
$res = $this->_obj->add(1, 2);
/*phpunit的断言assertEquals判断输出是否和预期的相等,phpunit 还提供很多断言方法
AssertTrue/AssertFalse 断言是否为真值还是假
AssertEquals 判断输出是否和预期的相等
AssertGreaterThan 断言结果是否大于某个值,同样的也有LessThan(小于),GreaterThanOrEqual(大于等于),
LessThanOrEqual(小于等于).
AssertContains 判断输入是否包含指定的值
AssertType 判断是否属于指定类型
AssertNull 判断是否为空值
AssertFileExists 判断文件是否存在
AssertRegExp 根据正则表达式判断
*/
$this->assertEquals(3, $res);
}
}
?>
执行命令
phpunit demoTest.php