如果你已经安装好PHPUnit了,那么就继续开始吧。
<?php
require_once 'PHPUnit/Framework.php';
class ArrayTest extends PHPUnit_Framework_TestCase
{
protected $fixture;
protected function setUp()
{
// Create the Array fixture.
$this->fixture = array();
}
public function testNewArrayIsEmpty()
{
// Assert that the size of the Array fixture is 0.
$this->assertEquals(0, sizeof($this->fixture));
}
public function testArrayContainsAnElement()
{
// Add an element to the Array fixture.
$this->fixture[] = 'Element';
// Assert that the size of the Array fixture is 1.
$this->assertEquals(1, sizeof($this->fixture));
}
}
?>
这是一个测试文件,注意文件名叫ArrayTest.php。在命令行运行phpunit ArrayTest.php,如果显示ok的话,就恭喜你了。setUp()是每次调用测试用例之前调用的方法,用于重置一些变量,方便测试。其实上面的东西照着手册就可以做到了,所以这并不是重点。对于一个项目来说,可能有许多模块,怎么组织这些模块测试就成了一个问题,除非你把所有的东西写在一起,其实那样也挺有难度的。所以在PHPUnit测试里面有帮你组织测试的功能。代码我就不帖了,在这。如果你得懂,就不用再继续看下去了。
在AllTests中定义了两个静态方法,Framework_AllTest也是同样的,区别在于,Framework_AllTest添加了ArrayTest.php这个测试文件。
在AllTests的开始定义了一个常量,并在类的下方对这个常量进行了判断。假如你是从这个文件开始运行的,那个就会定义这个常量,通过常量的判断运行main()这个静态方法,而这个静态方法调用suite()方法,来加载测试套件。这样就能给测试用例很大的灵活性,你可以一起跑所有的测试,也可以只测试某一个用例文件。
相关资料:
PHPUnit手册地址 中文版(有点老了)
我会在将来发布的代码中加入测试