PHP测试框架PHPUnit组织测试操作示例


Posted in PHP onMay 28, 2018

本文实例讲述了PHP测试框架PHPUnit组织测试操作。分享给大家供大家参考,具体如下:

首先是目录结构

PHP测试框架PHPUnit组织测试操作示例

源文件夹为 src/
测试文件夹为 tests/

User.php

<?php
class Errorcode
{
  const NAME_IS_NULL = 0;
}
class User
{
  public $name;
  public function __construct($name)
  {
    $this->name=$name;
  }
  public function Isempty()
  {
    try{
      if(empty($this->name))
      {
        throw new Exception('its null',Errorcode::NAME_IS_NULL);
      }
    }catch(Exception $e){
      return $e->getMessage();
    }
    return 'welcome '.$this->name;
  }
}

对应的单元测试文件  UserTest.php

<?php
use PHPUnit\Framework\TestCase;
class UserTest extends TestCase
{
  protected $user;
  public function setUp()
  {
    $this->user = new User('');
  }
  public function testIsempty()
  {
    $this->user->name='mark';
    $result =$this->user->Isempty();
    $this->assertEquals('welcome mark',$result);
    $this->user->name='';
    $results =$this->user->Isempty();
    $this->assertEquals('its null',$results);
  }
}

第二个单元测试代码因为要引入 要测试的类  这里可以用 自动载入 避免文件多的话 太多include

所以在src/ 文件夹里写 autoload.php

<?php
function __autoload($class){
  include $class.'.php';
}
spl_autoload_register('__autoload');

当需要User类时,就去include User.php。写完__autoload()函数之后要用spl_autoload_register()注册上。

虽然可以自动载入,但是要执行的命令变得更长了。

打开cmd命令如下

phpunit --bootstrap src/autoload.php tests/UserTest

所以我们还可以在根目录写一个配置文件phpunit.xml来为项目指定bootstrap,这样就不用每次都写在命令里了。

phpunit.xml

<phpunit bootstrap="src/autoload.php">
</phpunit>

然后

打开cmd命令 执行MoneyTest 命令如下

phpunit tests/UserTest

打开cmd命令 执行tests下面所有的文件 命令如下

phpunit tests

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

PHP 相关文章推荐
类的另类用法--数据的封装
Oct 09 PHP
复杂检索数据并分页显示的处理方法
Oct 09 PHP
解决phpmyadmin中文乱码问题。。。
Jan 18 PHP
Windows7下PHP开发环境安装配置图文方法
May 20 PHP
ThinkPHP之A方法实例讲解
Jun 20 PHP
Yii CGridView用法实例详解
Jul 12 PHP
PHP5.4起内置web服务器使用方法
Aug 09 PHP
PHP查询分页的实现代码
Jun 09 PHP
Django 中 cookie的使用
Aug 17 PHP
CI框架附属类用法分析
Dec 26 PHP
tp5.1框架数据库子查询操作实例分析
May 26 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
Jul 08 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
May 28 #PHP
PHP排序二叉树基本功能实现方法示例
May 26 #PHP
Thinkphp5+uploadify实现的文件上传功能示例
May 26 #PHP
PHP ADODB实现事务处理功能示例
May 25 #PHP
PHP ADODB实现分页功能简单示例
May 25 #PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
May 25 #PHP
php7函数,声明,返回值等新特性介绍
May 25 #PHP
You might like
中国第一家无线电行
2021/03/01 无线电
第六节 访问属性和方法 [6]
2006/10/09 PHP
使用php验证复选框有效性的示例
2013/11/13 PHP
PHP添加图片水印、压缩、剪切的封装类
2015/08/17 PHP
php生成curl命令行的方法
2015/12/14 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
jQuery 名称冲突的解决方法
2011/04/08 Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
2011/12/20 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
2013/09/05 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
2016/10/16 Javascript
vue.js移动端tab组件的封装实践实例
2017/06/30 Javascript
ES6中数组array新增方法实例总结
2017/11/07 Javascript
JS中offset和匀速动画详解
2018/02/06 Javascript
深入解析koa之异步回调处理
2019/06/17 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
JavaScript常用进制转换及位运算实例解析
2020/10/14 Javascript
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
Chain Reaction Cycles俄罗斯:世界上最大的在线自行车商店
2019/08/27 全球购物
Java软件工程师综合面试题笔试题
2013/09/08 面试题
工商管理实习自我鉴定
2013/09/28 职场文书
高二化学教学反思
2014/01/30 职场文书
养生餐厅创业计划书范文
2014/03/26 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
审计班子对照检查材料
2014/08/27 职场文书
暑假社会实践心得体会
2014/09/02 职场文书
2014年手术室工作总结
2014/11/26 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
2021/06/11 Python
Python 中的Sympy详细使用
2021/08/07 Python
Golang日志包的使用
2022/04/20 Golang