• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ThinkPHP5与单元测试PHPUnit使用详解

    thinkphp5.0 是 tp 发展路线第一个支持 composer 的。tp 有自己的载入机制,composer 也有自己的载入机制。

    官方提供了 think-testing 组件可以通过 composer require topthink/think-testing 1.* 安装,但我对这个测试组件不是很满意,原因是它每个测试都是模拟成 http 请求。这也就意味着对于一些特定函数,还得封装到控制器中或者路由,该控制器还得控制它生产环境不能对外开放。thinkphp5.0 是 tp 发展路线第一个支持 composer 的。tp 有自己的载入机制,composer 也有自己的载入机制。

    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

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

    PHPUnit简单用法

    1、单个文件测试

    根目录下创建目录tests

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

    ?php
    /**
     * 1、引入autoload.php文件
     * 2、测试案例
     *
     *
     */
    namespace App\tests;
    require_once __DIR__ . '/../vendor/autoload.php';
     
     
    use PHPUnit\Framework\TestCase;
     
     
    class FirstTest extends TestCase
    {
      public function testTure()
      {
        $stack = [];
        $this->assertEquals(0, count($stack));
      }
    }

    代码解释:

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

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

    测试项目内方法 

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

    在tests内写一个IndexTest.php

    ?php
     
    namespace App\tests;
    require_once __DIR__ . '/../vendor/autoload.php';
     
    use PHPUnit\Framework\TestCase;
    use app\index\controller\Index;
     
     
    class IndexTest extends TestCase
    {
      public function testSum()
      {
        $obj = new Index;
        $this->assertEquals(6, $obj->index(2,3));
     
      }
     
    }

    执行后的结果  成功!

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

    返回结果  会有错误位置

    其他用法

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

    您可能感兴趣的文章:
    • PHPUnit 单元测试安装与使用入门教程
    • PHP单元测试配置与使用方法详解
    • PHPUnit + Laravel单元测试常用技能
    • PHP使用phpunit进行单元测试示例
    • 使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
    • PHPStorm中如何对nodejs项目进行单元测试详解
    • PHP单元测试框架PHPUnit用法详解
    • thinkPHP框架单元测试库tpunit用法示例
    • 浅谈如何提高PHP代码质量之单元测试
    上一篇:PHP实现创建一个RPC服务操作示例
    下一篇:php实现根据身份证获取精准年龄
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    ThinkPHP5与单元测试PHPUnit使用详解 ThinkPHP5,与,单元,测试,PHPUnit,