Back

PHPUnit

2016-02-29 更新

使用:

setUp和tearDown

setUp和tearDown可以帮助我们搭建和清理测试环境,TestCase和TestSuite两个类均有这对函数,可以共用户重载。但是,需要注意这两对函数调用的时机不一样,在TestCase中,每一次test***方法调用前均会调用setUp方法,调用后均会调用tearDown方法。但是,在TestSuite中,只会在第一个testCase调用之前调用setup,最后一个testCase调用后,调用tearDown。可以通过下面的例子,了解整个调用过程。


命名约定

PHPUnit中默认的命令规则,可以使得运行测试用例变得十分方便。列举如下:

一旦遵守了这些命名约定,编写单元测试将会更加便捷。

框架结构

PHPUnit使用了组合模式:

使用Test作为统一的接口, TestCase是测试用用例,继承于Assert,这样可以方便的调用Assert中的各种断言函数。TestSuite,是一个Test的集合,他可以包含任意的TestCase或TestSuite。这样设计的好处不言而喻——方便的组织测试用例和测试套件,客户代码不必关执行的是单个测试用例还是一整套测试套件或是更为复杂的测试用例树。

参考:http://www.cnblogs.com/bourneli/archive/2012/04/27/2474005.html

TestSuite的组织:

1) 测试套件类集成与PHPUnit_Framework_TestSuite类;

2) 测试套件类必须实现public static function suite(){/*必须返回测试套件对象*/}接口;

3) 通过addTestSuite(‘Test Case Class Name’),将具体的测试用例添加到测试套件中。

如果在真实的项目中,可以以模块为单位组织测试套件。如过模块过大,可以在模块内部继续划分测试套件,这样,形成一个树装结构,需要运行那部分测试用例,只需要敲入一行命令“phpunit XXXXTestSuite.php”,就可以轻松执行(上面的代码见附件)。合理的使用测试套件,可以简洁有效的组织所有测试用例。