php框架codeigniter提供了单元测试,那么什么是单元测试我们首先了解一下
维基百科中说道: http://zh.wikipedia.org/wiki/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95
在计算机编程中,单元测试(又称为模块测试)是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试
部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类
(子类)中的方法。
通常来说,程序员每修改一次程序就会进行最少一次单元测试,在编写程序的过程中前后很可能要进行多次单元测试,以证实程序达到软件规格书
(en:Specification)要求的工作目标,没有程序错误;虽然单元测试不是什么必须的,但也不坏,这牵涉到专案管理的政策决定。
每个理想的测试案例独立于其它案例;为测试时隔离模块,经常使用stubs、mock[1] 或fake等测试马甲程序。单元测试通常由软件开发人员编写,
用于确保他们所写的代码符合软件需求和遵循开发目标。它的实施方式可以是非常手动的(通过纸笔),或者是做成构建自动化的一部分。
简单来说就是测试代码的方法
codeigniter提供了单元测试类(简单的单元测试类)
首先加载单元测试类 $this->load->library('unit_test');
运行一个单元测试 $this->unit->run( test, expected result, 'test name', 'notes'); 他提供了四个参数 第一个test是你要测试的对象 第二个expected result 测试返回结果 第三个testname是测试名称,第三第四不是必填项,可以根据自己需求添加
现在我们先运行一个实例
$test=array('test unit'=>'hello unit');
echo $this->unit->run($test, 'is_array','club_community_home_made');
输出结果是:
Test Name | club_community_home_made |
---|---|
Test Datatype | String |
Expected Datatype | String |
Result | Passed |
File Name | D:\phpproject\hmvc\application\modules\club\community\controllers\home_made.php |
Line Number | 36 |
Notes |
第二个参数官方给出了几个参数可以选填,这个是泛定义,通俗说就是如果你测试的对象返回的类型
注意第二个参数"is_string"的使用,它告诉函数测试你的测试用例产生的将是一个字符串。下面是合法的类型列表:
- is_object
- is_string
- is_bool
- is_true
- is_false
- is_int
- is_numeric
- is_float
- is_double
- is_array
- is_null
或者你可以直接在第二个参数中定义结果
echo $this->unit->run('this is test', 'hey test','club_community_home_made');
Test Name | club_community_home_made |
---|---|
Test Datatype | String |
Expected Datatype | String |
Result | Failed |
File Name | D:\phpproject\hmvc\application\modules\club\community\controllers\home_made.php |
Line Number | 38 |
Notes |
运行上述例子会ci测试单元输出测试结果的Result显示错误,因为你要测试的单元结果是
this is test而返回结果定义的是hey test