codeigniter单元测试

来源:互联网 发布:空中英语教室 知乎 编辑:程序博客网 时间:2024/06/06 16:54


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 Nameclub_community_home_madeTest DatatypeStringExpected DatatypeStringResultPassedFile NameD:\phpproject\hmvc\application\modules\club\community\controllers\home_made.phpLine Number36Notes 

第二个参数官方给出了几个参数可以选填,这个是泛定义,通俗说就是如果你测试的对象返回的类型

注意第二个参数"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 Nameclub_community_home_madeTest DatatypeStringExpected DatatypeStringResultFailedFile NameD:\phpproject\hmvc\application\modules\club\community\controllers\home_made.phpLine Number38Notes

运行上述例子会ci测试单元输出测试结果的Result显示错误,因为你要测试的单元结果是

this is test而返回结果定义的是hey test

原创粉丝点击