使用效果

先看下使用效果,我这里是直接在PhpStorm中集成使用的。
由上图测试结果可以看出
StackTest、Stack2Test、Stack3Test单元测试正常
Stack4Test测试有错误,并且标明了错误的具体位置。
我们还可以看到性能 :Time: 00:00.031, Memory: 6.00 MB

前言

PHPUnit是一款轻量级的PHP测试框架。
我们可以通过它来测试脚本、服务、通过断言的方式来校验服务的稳定性
我们还可以测试脚本、服务的性能

PHPUnit手册:点击跳转

安装

PHPUnit的安装方式有很多,但其他方式都可以不用看,看我这个就可以了。其他的真的很麻烦,使用也不方便。
使用composer方式安装:(不了解composer的先去百度了解下)

composer require phpunit/phpunit ^9

集成PhpStorm

PHPUnit的使用方式有多种,但是看我这种集成到PhpStorm一键使用就好了,其他的手动方式太麻烦了,不用看了。

1.配置php版本
点击File | Settings | Languages & Frameworks | PHP,配置PHPlevel和CLI,需要7.2版本


2.配置PHPUnit
点击File | Settings | Languages & Frameworks | PHP | Test Frameworks,选择Use Composer autoloader 配置好对应autoload.php路径,点击右边蓝色的刷新键。
点击Apply,确认配置

3.配置运行脚本
点击Run | Edit Configuration

配置运行脚本名称、测试类的文件夹路径。

4.编写测试类

<?php
require_once __DIR__ . '/../vendor/autoload.php';use PHPUnit\Framework\TestCase;class StackTest extends TestCase
{/** @var* 栈测试数据*/protected $stack;/*** @var \Api\ApiServer* 测试服务类*/protected $apiServer;/*** 测试数组进出*/public function testPushAndPop(){$stack = [];$this->assertEquals(0, count($stack));array_push($stack, 'foo');$this->assertEquals('foo', $stack[count($stack)-1]);$this->assertEquals(1, count($stack));$this->assertEquals('foo', array_pop($stack));$this->assertEquals(0, count($stack));}/*** 测试用例初始化*/protected function setUp(): void{$this->stack = [];$this->apiServer = new \Api\ApiServer();$this->apiServer->initUserId(1);}/*** api服务测试*/public function testApiServer(){$data = $this->apiServer->getData();$this->assertArrayHasKey('ack', $data);$this->assertArrayHasKey('data', $data);}/*** 空数组测试*/public function testEmpty(){$this->assertTrue(empty($this->stack));}/*** 数组push测试*/public function testPush(){array_push($this->stack, 'foo');$this->assertEquals('foo', $this->stack[count($this->stack)-1]);$this->assertFalse(empty($this->stack));}/*** 数组pop测试*/public function testPop(){array_push($this->stack, 'foo');$this->assertEquals('foo', array_pop($this->stack));$this->assertTrue(empty($this->stack));}
}

5.运行脚本

大功告成!

PHPUnit的使用相关推荐

  1. php安装pear和phpunit

    php安装pear和phpunit http://hi.baidu.com/zjutxujie/item/7b08761f922df7476926bb2c 安装pear 下载go-pear.phar, ...

  2. PHPUnit实践三(构建模块化的测试单元)

    本系列教程所有的PHPUnit测试基于PHPUnit6.5.9版本,Lumen 5.5框架 目录结构 模块下的目录是符合Lumen的模块结构的 如:Controllers.Models.Logics等 ...

  3. [PHPUnit]自动生成PHPUnit测试骨架脚本-提供您的开发效率【2015升级版】

    2019独角兽企业重金招聘Python工程师标准>>> 场景 在编写PHPUnit单元测试代码时,其实很多都是对各个类的各个外部调用的函数进行测试验证,检测代码覆盖率,验证预期效果. ...

  4. ThinkPHP 集成 PHPUnit 8 测试框架进行单元测试

    ThinkPHP 5.1 集成 PHPUnit 8 测试框架 本项目仅适用于运行 PHP7.2 以上的环境!对于低版本 PHP 请根据需要调整 PHPUnit 的版本! 声明 由于原项目 think- ...

  5. PHPUnit单元测试 - 我看过的PHP开源框架

    2019独角兽企业重金招聘Python工程师标准>>> PHPUnit 作为XUnit系列,大家应该对单元测试体系都比较了解,这里不再详细说明,感兴趣的同学可以参考PHPUnit官方 ...

  6. centos --- phpunit 安装过程

    2019独角兽企业重金招聘Python工程师标准>>> 安装pear 的命令如下: $ wget http://pear.php.net/go-pear.phar $ php go- ...

  7. PHPUnit实践二(生命周期)

    本系列教程所有的PHPUnit测试基于PHPUnit6.5.9版本,Lumen 5.5框架 PHPUnit测试一个文件类的生命周期 理解PHPUnit加载机制(Lumen版) PHPUnit自动测试文 ...

  8. php类的测试用例,快速入门:集成 PHPUnit 编写测试用例

    快速入门:集成 PHPUnit 编写测试用例 由 学院君 创建于3年前, 最后更新于 11个月前 版本号 #2 14719 views 4 likes 0 collects 简介 Laravel 植根 ...

  9. Xampp安装PHPUnit

    原文地址:http://www.xbc.me/install-phpunit-on-xampp/ 最近准备着手开发Magento的插件,为了保证插件的代码质量,决定采用TDD的方法进行开发.在PHP实 ...

  10. ob_start()失效与phpunit的非正常结束

    在ob_clean();或ob_get_clean()之前有return或致命错误,从而结束了程序,会导致ob_start失效, 这和phpunit的非正常结束 转载于:https://www.cnb ...

最新文章

  1. java创建请求拦截器_80.简单Retrofit+RxJava+日志拦截器结合使用
  2. jQuery Mobile 1.1 : 更流畅,更快捷,更实用
  3. python(26)查看文件的大小
  4. 专栏数量创新高、问答wap端新视觉
  5. [导入].net中设置系统时间
  6. php版的求表达式的真值表-TrueValueTable
  7. excel表格中忘了撤销工作表保护密码怎么办
  8. 前端开发实习面试题(Vue篇)
  9. HNUSTOJ-1621 Picking Cabbage(状态压缩DP)
  10. 从头来过教你PHP脚本语言(一)
  11. 【论文阅读】ReDoSHunter: A Combined Static and Dynamic Approach for Regular Expression DoS Detection
  12. VIVADO中WNS,WHS,TNS,THS含义
  13. Activiti设置流程发起人用户信息
  14. linux修改系统时区为上海
  15. NLP在线医生(三)
  16. 自己定义控件事实上非常easy1/6
  17. CentOS7部署fabric
  18. 【python 文本翻译】python文本翻译功能
  19. CentOS 8/6宣布停用,来试试这些最佳替代方案吧!
  20. 21天学通Java学习笔记-Day06

热门文章

  1. 【网络资源学习笔记】ShellCode相关内容学习
  2. Error: Cannot find module 'util-deprecate'
  3. 为张孝祥老师的离世表示哀悼
  4. vue基础-过滤器(Filters)
  5. (转)Java面试笔试题大汇总(最全+详细答案)
  6. Markov blanket 马尔科夫毯子
  7. 《这!就是街舞》,好综艺还是好生意?
  8. 【Eslint + Prettier + Husky + Commitlint】前端项目代码规范的搭建
  9. 给我一篇假论文,我能骗倒半个地球
  10. php中file_get_contents与curl性能比较分析