SimpleTest 是又一个我通过Google发现的好东东,是可以用来实现PHP的Unit Test的工具,功能类似于Java的JUnit。
测试时只需要建一个包含被测函数、测试输入和测试结果判断的函数,SimpleTest 可以将测试结果输出成html或者XML的形式。
另外它还支持 Mock objects* 和 Web test 。
Sample Code:
<?php
require_once(‘simpletest/unit_tester.php’); // SimpleTest库
require_once(‘simpletest/reporter.php’); // SimpleTest输出Report的库
require_once(‘../classes/log.php’); // 被测函数库
class TestOfLogging extends UnitTestCase {
// 新建测试函数
function testCreatingNewFile() {
$log = new Log(‘/temp/test.log’); // 新建被测对象
$this->assertFalse(file_exists(‘/temp/test.log’)); // 判断测试输出的结果
}
}
?>
注:什么是mock objects?
简单的说,就是一个仿造的对象,它和被模访的对象有着相同的接口。
举个例子,我们要测试Class A,Class A要调用Class B的函数,但如果Class B现在还没有实现,那么我们可以从Class B的接口抽象出一个接口interfaceB,再构建一个类Class MockB来实现这个接口,一般MockB的实现非常简单,它的存在只是为了方便测试Class A。
要注意的是我们要测试的是Class A,而不是Class MockB这个mock object。