ThinkPHP5与单元测试PHPUnit使用

PHPUnit 是一个用PHP编程语言开发的开源软件,是一个单元测试框架。PHPUnit由Sebastian Bergmann创建,源于Kent Beck的SUnit,是xUnit家族的框架之一。

单元测试是对单独的代码对象进行测试的过程,比如对函数、类、方法进行测试。单元测试可以使用任意一段已经写好的测试代码,也可以使用一些已经存在的测试框架,比如JUnit、PHPUnit或者Cantata++,单元测试框架提供了一系列共同、有用的功能来帮助人们编写自动化的检测单元,例如检查一个实际的值是否符合我们期望的值的断言。单元测试框架经常会包含每个测试的报告,以及给出你已经覆盖到的代码覆盖率。

总之一句话,使用 phpunit 进行自动测试,会使你的代码更健壮,减少后期维护的成本,也是一种比较标准的规范,现如今流行的PHP框架都带了单元测试,如Laraval,Symfony,Yii2等,单元测试已经成了标配。

另外,单元测试用例是通过命令操控测试脚本的,而不是通过浏览器访问URL的。

项目内安装PHPUnit

使用 composer 方式安装 PHPUnit 项目根目录下执行下面这段代码

composer require  phpunit/phpunit 

 自动下载适配版本  我下载的时4.8.36

ThinkPHP5与单元测试PHPUnit使用_第1张图片

将 F:\wamp\wamp\www\tp5\vendor\bin 添加加到 PATH 环境变量中(这样PHPunit全局生效)

ThinkPHP5与单元测试PHPUnit使用_第2张图片

PHPUnit简单用法

1、单个文件测试

根目录下创建目录tests

ThinkPHP5与单元测试PHPUnit使用_第3张图片

新建文件 FirstTest.php,编辑如下: 

assertEquals(0, count($stack));
    }
}

代码解释:

  1. FirstTest为测试类
  2. FirstTest继承于 PHPUnit\Framework\TestCase
  3. 测试方法testTure(),测试方法必须为public权限,一般以test开头,或者你也可以选择给其加注释@test来表
  4. 在测试方法内,类似于 assertEquals() 这样的断言方法用来对实际值与预期值的匹配做出来以此判断方法是否正确

命令行执行:
tests目录下 执行  >phpunit FirstTest     命令 测试文件命名

ThinkPHP5与单元测试PHPUnit使用_第4张图片

测试项目内方法 

tp5项目下的控制器在  F:\wamp\wamp\www\tp5\application\index\controller 文件夹下 写一个简单的方法

ThinkPHP5与单元测试PHPUnit使用_第5张图片

在tests内写一个IndexTest.php

assertEquals(6, $obj->index(2,3));

    }

}

执行后的结果  成功!

ThinkPHP5与单元测试PHPUnit使用_第6张图片

如果我在index.php,和IndexTest.php都故意写错 

ThinkPHP5与单元测试PHPUnit使用_第7张图片ThinkPHP5与单元测试PHPUnit使用_第8张图片

返回结果  会有错误位置

ThinkPHP5与单元测试PHPUnit使用_第9张图片

其他用法

其他用法请参考官网:PHPUnit中国官网 

你可能感兴趣的:(php)