phpunit3安装试用小记
phpunit是PHP开发时用于单元测试的利器,今天在linux系统下安装试用一下。我没有通过pear方式来安装,而是下载下来后手动安装的。首先去 https://github.com/sebastianbergmann/phpunit/ 网站下载源码,phpunit的版本更新很快,我用的是3.4.15 。下载之后把解压后的PHPUnit文件夹放到include_path路径下。把phpunit.php文件重命名为phpunit并复制到/usr/bin/目录,添加一下可执行权限。打开这个文件后把页首的php bin路径修改成自己环境中的。把文件里关于设置包含路径的那个条件判断可以直接去掉。打开PHPUnit/Runner/Version.php文件,把package_version@替换成3位PHPUnit版本号,如3.4.15 。接着给出一个例子。
require_once 'PHPUnit/Framework/TestCase.php';
class FunctionTest extends PHPUnit_Framework_TestCase{
public function testGetOptimizeLang(){
$this->assertEquals(2, $this->getOptimizeLang(5) );
$this->assertEquals(1, $this->getOptimizeLang(1) );
$this->assertEquals(2, $this->getOptimizeLang(9) );
$this->assertEquals(2, $this->getOptimizeLang(6) );
}
public function testValidIp(){
$this->assertEquals(false, $this->isIp('192.163.545.85') );
$this->assertEquals(true, $this->isIp('192.163.145.85') );
}
public function isIp($str){
if( preg_match('/^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$/',$str) ){
if(max( explode('.',$str) ) > 255) return false;
}else{
return false;
}
return true;
}
public function getOptimizeLang($lang){
return min(2,$lang);
}
}
仔细看这个代码,包含进TestCase.php文件是必需的。前两个以test开始的方法就是测试用例了,主要用来测试下面的两个方法,本来被测试的方法会写在了另一个文件中并包含进来了的,我为了方便就直接写在了下面了。执行时,如果在WINDOWS平台使用zend studio时可直接右键这个文件,RUN AS PHPUnit,如果环境还没配置好,请参考:在zend studio 7.* 中使用PHPUnit进行单元测试。如果是Linux平台则进入到这个文件目录下执行
phpunit FunctionTest
执行结果如下:
PHPUnit 3.4.15 by Sebastian Bergmann.
..
Time: 00:00
OK (2 tests)
第一行说明了phpunit的版本和开发作者吧,我是这么认的。第二行是两个点,一个点说明一个用例测试通过。这里的两个点说明上面的两个用例都测试通过。第三行给了个OK。说明本次单元测试通过。
如果修改一下第一个用例的第一个$this->assertEquals的第一个参数由2修改为3。这时的结果就是这样了,第二行由点变成了F,说明第一个用例测试失败了。接下来的是详细信息。
PHPUnit 3.4.15 by Sebastian Bergmann.
F.
Time: 00:00
There was 1 failure:
1) testGetOptimizeLang(FunctionTest)
Failed asserting that
/data0/htdocs/projects/coderbolg/test/FunctionTest.php:18
/usr/bin/phpunit:40
FAILURES!
Tests: 2, Failures: 1.
最后是phpunit的手册 http://www.phpunit.de/manual/3.5/en/phpunit-book.html
本文链接地址: http://www.coderbolg.com/content/89.html


评论列表