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 相关文章推荐
用 php 编写的日历
Oct 09 PHP
PHP Pear 安装及使用
Mar 19 PHP
php excel类 phpExcel使用方法介绍
Aug 21 PHP
php一个找二层目录的小东东
Aug 02 PHP
基于PHP一些十分严重的缺陷详解
Jun 03 PHP
php curl_init函数用法
Jan 31 PHP
zf框架的数据库追踪器使用示例
Mar 13 PHP
微信公众平台开发之天气预报功能
Aug 31 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
Apr 19 PHP
Yii2设置默认控制器的两种方法
May 19 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 20 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
php 判断网页是否是utf8编码的方法
2014/06/06 PHP
PHP实现的策略模式简单示例
2017/08/25 PHP
php微信开发之关注事件
2018/06/14 PHP
js parentElement和offsetParent之间的区别
2010/03/23 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
2015/09/10 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
2016/12/24 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
帝国cms首页列表页实现点赞功能
2017/10/30 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
Nautil 中使用双向数据绑定的实现
2019/10/02 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
JS document form表单元素操作完整示例
2020/01/13 Javascript
修改NPM全局模式的默认安装路径的方法
2020/12/15 Javascript
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
python基础教程之自定义函数介绍
2014/08/29 Python
Python 编码处理-str与Unicode的区别
2016/09/06 Python
Python3 XML 获取雅虎天气的实现方法
2018/02/01 Python
Django使用paginator插件实现翻页功能的实例
2018/10/24 Python
selenium3+python3环境搭建教程图解
2018/12/07 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
python使用QQ邮箱实现自动发送邮件
2020/06/22 Python
Python使用struct处理二进制(pack和unpack用法)
2020/11/12 Python
Django视图类型总结
2021/02/17 Python
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
2015/04/24 HTML / CSS
行政助理求职自荐信
2013/10/26 职场文书
酒店管理专业毕业生求职自荐信
2014/04/28 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
刘胡兰观后感
2015/06/16 职场文书
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL
苹果的回收机器人可以通过拆解iPhone获取大量的金和铜并外公布了环境保护最新进展
2022/04/21 数码科技
vue如何在data中引入图片的正确路径
2022/06/05 Vue.js
Apache自带的ab压力测试工具的实现
2022/07/23 Servers