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程序时遇到的三个问题
Jan 17 PHP
php使用qr生成二维码的示例分享
Jan 20 PHP
php查找指定目录下指定大小文件的方法
Nov 28 PHP
php使用Jpgraph绘制柱形图的方法
Jun 10 PHP
PHP人民币金额转大写实例代码
Oct 02 PHP
php 无限级分类 获取顶级分类ID
Mar 13 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
Oct 13 PHP
laravel 中如何使用ajax和vue总结
Aug 16 PHP
Laravel学习教程之路由模块
Aug 18 PHP
PHP实现合并两个排序链表的方法
Jan 19 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
Jun 05 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
Apr 13 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中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
2009/09/05 PHP
php循环语句 for()与foreach()用法区别介绍
2012/09/05 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
javascript 设置文本框中焦点的位置
2009/11/20 Javascript
禁止js文件缓存的代码
2010/04/09 Javascript
理解Javascript_06_理解对象的创建过程
2010/10/15 Javascript
js电话号码验证方法
2015/09/28 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
2016/06/21 Javascript
原生js仿浏览器滚动条效果
2017/03/02 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
layui-tree实现Ajax异步请求后动态添加节点的方法
2019/09/23 Javascript
vue实现路由监听和参数监听
2019/10/29 Javascript
Python+request+unittest实现接口测试框架集成实例
2018/03/16 Python
Python数据分析库pandas基本操作方法
2018/04/08 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
详解将Django部署到Centos7全攻略
2018/09/26 Python
python生成九宫格图片
2018/11/19 Python
windows下 兼容Python2和Python3的解决方法
2018/12/05 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
2019/01/19 Python
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
NET程序员上机面试题
2015/05/23 面试题
质检部部长职责
2013/12/16 职场文书
个人自我评价范文
2014/02/05 职场文书
幼儿园毕业典礼主持词
2014/03/21 职场文书
继承权公证书
2014/04/09 职场文书
企业年度评优方案
2014/06/02 职场文书
我的中国梦演讲稿800字
2014/08/19 职场文书
幼儿教师自我剖析材料
2014/09/29 职场文书
如何写辞职信
2015/05/13 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书
javascript canvas实现雨滴效果
2021/06/09 Javascript
python基础入门之字典和集合
2021/06/13 Python