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 相关文章推荐
PHP安装全攻略:APACHE
Oct 09 PHP
十天学会php之第一天
Oct 09 PHP
php SQL防注入代码集合
Apr 25 PHP
php 静态变量与自定义常量的使用方法
Jan 26 PHP
PHP排序算法的复习和总结
Feb 15 PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
Nov 07 PHP
PHP资源管理框架Assetic简介
Jun 12 PHP
PHP实现的DES加密解密实例代码
Apr 06 PHP
深入理解PHP的远程多会话调试
Sep 21 PHP
PHP 断点续传实例详解
Nov 11 PHP
PHP asXML()函数讲解
Feb 03 PHP
php和html的区别点详细总结
Sep 24 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加密算法之实现可逆加密算法和解密分享
2014/01/21 PHP
Linux平台PHP5.4设置FPM线程数量的方法
2016/11/09 PHP
thinkphp集成前端脚手架Vue-cli的教程图解
2018/08/30 PHP
laravel中的fillable和guarded属性详解
2019/10/23 PHP
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
jQuery extend 的简单实例
2013/09/18 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
JavaScript实现在页面间传值的方法
2015/04/07 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
解决React Native端口号修改的方法
2017/07/28 Javascript
详解webpack2+React 实例demo
2017/09/11 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
微信小程序如何调用新闻接口实现列表循环
2019/07/02 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
python代码检查工具pylint 让你的python更规范
2012/09/05 Python
python控制台显示时钟的示例
2014/02/24 Python
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
Pytorch .pth权重文件的使用解析
2020/02/14 Python
python 伯努利分布详解
2020/02/25 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
Django model class Meta原理解析
2020/11/14 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
html5使用html2canvas实现浏览器截图的示例
2017/08/31 HTML / CSS
canvas离屏技术与放大镜实现代码示例
2018/08/31 HTML / CSS
详解canvas绘制多张图的排列顺序问题
2019/01/21 HTML / CSS
北京银河万佳Java面试题
2012/03/21 面试题
创业计划实施的7大步骤
2014/02/05 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
领导干部民主生活会自我剖析材料范文
2014/09/20 职场文书
干部四风问题整改措施思想汇报
2014/10/13 职场文书
2015年学校减负工作总结
2015/05/19 职场文书
党员干部学习三严三实心得体会
2016/01/05 职场文书