PHP使用phpunit进行单元测试示例


Posted in PHP onSeptember 23, 2019

本文实例讲述了PHP使用phpunit进行单元测试。分享给大家供大家参考,具体如下:

1. linux服务器上安装phpunit

wget https://phar.phpunit.de/phpunit.phar
chmod +x phpunit.phar
sudo mv phpunit.phar /usr/local/bin/phpunit

建立phpunit短命令

phpunit --version

[root@dongzi phpunit_test]# phpunit --version
PHPUnit 5.6.1 by Sebastian Bergmann and contributors.

2. 创建单元测试文件

文件名称为UnitTest.php

我们可以在单元测试文件内的方法里面调用功能模块,用数据模拟看是否运行正常,如果通则会报错,断掉

<?php
  class UnitTest extends PHPUnit_Framework_TestCase{
    public function testPushAndPop(){
      $stack = array();
      $this->assertEquals(0,count($stack));
      array_push($stack,'foo');
      //断言插入数据到$stack数组后值是否等于1
      $this->assertEquals(1,count($stack));
    }
    /**
     *定义test标签声明该方法是测试方法
     *@test
     ***/
    public function indexEquals(){
      $stack = array(1,2,3,4);
      //断言$stack[0]等于2
      $this->assertEquals(2,$stack[0]);
    }
  }
?>

3. phpunit运行文件

[root@dongzi phpunit_test]# phpunit UnitTest.php
PHPUnit 5.6.1 by Sebastian Bergmann and contributors.
.F                                 2 / 2 (100%)
Time: 82 ms, Memory: 6.75MB
There was 1 failure:
1) UnitTest::indexEquals
Failed asserting that 1 matches expected 2.
/wwwroot/phpunit_test/UnitTest.php:18
FAILURES!
Tests: 2, Assertions: 3, Failures: 1.

结果显示测试php文件中共运行两个模块,有一个模块错误

错误测试方法名为indexEquals报错行为18行。

因为因为stack等于0不等于断言的1,所以报错,定位错误成功。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
图书管理程序(二)
Oct 09 PHP
php实现设计模式中的单例模式详解
Oct 11 PHP
PHP使用正则表达式获取微博中的话题和对象名
Jul 18 PHP
php中array_column函数简单实现方法
Jul 11 PHP
利用PHP自动生成印有用户信息的名片
Aug 01 PHP
浅谈PHP中关于foreach使用引用变量的坑
Nov 14 PHP
PHP去除字符串最后一个字符的三种方法实例
Mar 01 PHP
PHP 应用容器化以及部署方法
Feb 12 PHP
PHP获取当前系统时间的方法小结
Oct 03 PHP
PHP扩展Swoole实现实时异步任务队列示例
Apr 13 PHP
使用laravel的migrate创建数据表的方法
Sep 30 PHP
php如何获取Http请求
Apr 30 PHP
php快速导入大量数据的实例方法
Sep 23 #PHP
关于Yii中模型场景的一些简单介绍
Sep 22 #PHP
php定期拉取数据对比方法实例
Sep 22 #PHP
php设计模式之工厂模式用法经典实例分析
Sep 20 #PHP
php设计模式之单例模式用法经典示例分析
Sep 20 #PHP
php数组和链表的区别总结
Sep 20 #PHP
php输出反斜杠的实例方法
Sep 19 #PHP
You might like
php flush类输出缓冲剖析
2008/10/19 PHP
PHP基础学习之流程控制的实现分析
2013/04/28 PHP
PHP经典实用正则表达式小结
2017/05/04 PHP
SWFObject Flash js调用类
2008/07/08 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
2014/03/05 Javascript
JavaScript用Number方法实现string转int
2014/05/13 Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
2014/06/20 Javascript
2014 年最热门的21款JavaScript框架推荐
2014/12/25 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
JavaScript实现点击文字切换登录窗口的方法
2015/05/11 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
2016/07/05 Javascript
js判断空对象的实例(超简单)
2016/07/26 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
2017/07/11 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
基于javascript的无缝滚动动画实现2
2020/08/07 Javascript
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
[48:31]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第一场 2月2日
2021/03/11 DOTA
python中合并两个文本文件并按照姓名首字母排序的例子
2014/04/25 Python
基于python实现聊天室程序
2018/07/27 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
Python3.8安装Pygame教程步骤详解
2020/08/14 Python
Python实现我的世界小游戏源代码
2021/03/02 Python
Delphi笔试题
2016/11/14 面试题
信息管理应届生求职信
2014/03/07 职场文书
关爱老人标语
2014/06/21 职场文书
建筑学专业自荐书
2014/07/09 职场文书
商场租赁意向书
2014/07/30 职场文书
婚育证明样本
2015/06/16 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书
Python 数据可视化神器Pyecharts绘制图像练习
2022/02/28 Python
十大公认最好看的动漫:《咒术回战》在榜,《钢之炼金术师》第一
2022/03/18 日漫
MySQL数据库实验实现简单数据库应用系统设计
2022/06/21 MySQL