迷惘的码农。
分类:
2008-04-08 11:42:37
存在一些用于PHP 4而不需要PHP 5的PHPUnit发行版。由于PHP 4的受限对象模型,用于它的PHPUnit不像用于PHP 5的PHPUnit那样是JUnit的完全对等(实现)。它也缺少用于PHP 5的PHPUnit的某些特性,例如代码覆盖率分析。
下面的命令行显示如何利用PEAR安装程序安装用于PHP 4的PHPUnit:
pear install -f phpunit/PHPUnit-1.3.3
用于PHP 4的PHPUnit的测试用例类类似于用于PHP 5的PHPUnit的测试用例类。本质区别在于该类扩展PHPUnit_TestCase
(它自己扩展提供断言方法的PHPUnit_Assert
)。
显示用于PHP 4的PHPUnit下的ArrayTest
测试用例的一个版本。
范例 B.1: 编写一个用于PHPUnit 1.x的测试用例
require_once 'PHPUnit/TestCase.php';
class ArrayTest extends PHPUnit_TestCase
{
var $_fixture;
function setUp()
{
$this->_fixture = array();
}
function testNewArrayIsEmpty()
{
$this->assertEquals(0, sizeof($this->_fixture));
}
function testArrayContainsAnElement()
{
$this->_fixture[] = 'Element';
$this->assertEquals(1, sizeof($this->_fixture));
}
}
?>
用于PHP 4的PHPUnit不提供TextUI测试启动器,最一般的运行测试方法是编写测试套件并手工运行它,如中所示。
范例 B.2: 用PHPUnit 1.x运行一个测试用例
require_once 'ArrayTest.php';
require_once 'PHPUnit.php';
$suite = new PHPUnit_TestSuite('ArrayTest');
$result = PHPUnit::run($suite);
print $result->toString();
?>
TestCase arraytest->testnewarrayisempty() passed
TestCase arraytest->testarraycontainsanelement() passed
显示一个用于PHP 4的PHPUnit具有而用于PHP 5的PHPUnit没有的特性:基于PHP-GTK的带图形用户界面的测试启动器。
图 B.1. PHP-GTK测试启动器