phpunit和php单元测试体验

14 篇文章 0 订阅
一:

  和其他的Xunit测试框架一样,phpunit框架主要分为以下部分:


  TestCase --测试用例
  TestSuite --测试套件(我习惯称其为测试用例集)
  Assert--断言(我习惯称其为验证方式)
  TestResult--测试结果
  对于testcase,phpunit中除了一般的testcase,还包含了Incompletetestcase(未完成的)和skiptestcase(跳过的测试用例)。


  testcase是单元测试的基本组成部分,每个testcase均包含以下部分:


Setup()---测试前的初始化,执行每个testMethod前均会执行
Teardown()--测试完成后恢复,执行完每个testMethod后均会执行

testMethod()--测试方法(测试点)


二:
写phpunit测试脚本时,可以通过phpunit Skeleton 生成单元测试的脚本结构,然后在结构中填写测试用例。


如果不用skeleton生成,自己写也很方便。


phpunit的测试文件包含以下部分:


引入必要的文件


   require 'x.php'--被测试的php文件
   rquire 'phpunitpath\phpunit\framework'---  phpunit的framewok文件
创建一个从phpunit frame继承的类


class XXtest extends PHPUnit_Framework_TestCase


 [初始化公共的参数]


  public $para1='';


  public $para2='';


写setup和teardown函数


 public function setUp() {}


 public function tearDown() {}


 注意,每运行一个test的函数,均会首先运行setup,每运行完一个函数,均会运行teardown. 写这2个函数时需要注意。


 下一步就是写测试函数了,比如测试


  public function sum(a,b)


  {return a+b;}


 写测试函数时和测试用例是对应的,我们首先测试正常情况下求和是否正确,testXX函数可以如下:


  public function testSumNormal ()                                                       
     {


  coding....


  assertSame(expectresult,actualcode,message)


}


 所有的测试函数均已test开头,一般通过assert..验证结果是否正确。


三:


写完单元测试脚 本后,下一步就是执行测试,最简单的命令是:phpunit xxx.php 


更加详细的命令如下: phpunit --log-xml(log 文件格式) 文件路径/文件名 --coverage-html(代码覆盖文件格式) 文件路径/文件名 单元测试用例类 单元测试文件 如:


phpunit --log-xml path/createAlbumlog --coverage-html path/logs/ createAlbumtest createAlbum.php 


命令执行过程中,.--表示成功,e--代表error, f--代表失败, 执行完成后会显示测试用例成功、失败和出错情况。也可以通过查看log查看测试情况,coverage文件可以查看单


元测试脚本对测试文件代码覆盖率情 况。 


四: 


自己感觉单元测试过程中需注意以下几个方面:


 1、各测试用例(testXXX)的数据耦合度要低。如果耦合度较高的话,如果前一个测试用例失败的话,之后的测试用例会出现error,无法继续。


 2、测试用例尽量覆盖各逻辑分支,保证测试覆盖率。


 3、测试用例设计和非单元测试的用例设计方法一致,针对一个方法测试需包含:正常测试、异常测试和边界测试等。


 4、 合理的利用setUp合tearDown, 每执行一个testXX时,都首先运行setUP,执行完testXX后,都会运行tearDown, 因此可以把各个测试用例开始都需要初始化且初始化值一样的


参数放到setUP中,而执行完后需要unset的参数放到tearDown函数中。


 5、用phpunit skelon 生成测试框架时,只有.php文件才可以,测试其他格式的文件如 inc格式文件无法生成的。可以修改文件名后在生成。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值