单元测试是几个现代敏捷开发方法的基础,使得PHPUnit成为许多大型PHP项目的关键工具。这个工具也可以被Xdebug扩展用来生成代码覆盖率报告 ,并且可以与phing集成来自动测试,最后它还可以和Selenium整合来完成大型的自动化集成测试。
如何部署方法一:使用Pear
运行 pear channel-discover pear.;
pear install phpunit/PHPUnit;
方法二 :手动安装
1 从官网下载软件包并解压
2 把解压后的目录加入php.ini中的include_path
3 将脚本pear-phpunit改名为phpunit
4 将phpunit脚本中的@php_bin@替换成php可执行脚本的路径
5 为phpunit脚本增加可执行权限并加入$PATH
6 将PHPUnit/Runner/Version.php中的@package_version@替换成3位
PHPUnit版本号
实例测试要点:
1 编写的测试用例是一个php脚本
2 require_once 'PHPUnit/Framework.php'是必须的,另外,你需要在测
试用例脚本中包含你需要测试的代码
3 测试用例的主体必须写在类中,类名必须和文件名保持一致,还必须是
PHPUnit_Framework_TestCase的子类
4 每一个测试用例都是一个public的成员函数,必须以test开头
5 程序的输出使用assert*系列函数来进行验证
该用例需要在Shell下键入phpunit ArrayTest.php来运行。结果如下示:
[username@machine xx]$ phpunit ArrayTest.php
PHPUnit 3.1.3 by Sebastian Bergmann.
..
Time: 0 seconds
OK (2 tests)
结果中最重要的用红色标出的结果,点号 代表一个用例通过(即assert系列函数都通过)。如果将上面的测试用例testArrayContainsAnElement用例assertEquals函数中的1改为0,则运行结果为:
PHPUnit 3.1.3 by Sebastian Bergmann.
.F
Time: 0 seconds
There was 1 failure:
1) testArrayContainsAnElement(ArrayTest)
FAILURES!
Tests: 2, Failures: 1.
可以很明显看出结果由原来的 .. 变为 .F ,F表示第二个测试用例未通
过,并且具体与哪一条验证不符都在后有详细说明。
除了F外,一个测试用例还有I(未完成),S (跳过),E (错误)三种状态,详见