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 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性
Oct 09 PHP
使用PHP维护文件系统
Oct 09 PHP
PHP+APACHE实现用户论证的方法
Oct 09 PHP
PHP中实现中文字符进制转换原理分析
Dec 06 PHP
Laravel框架中扩展函数、扩展自定义类的方法
Sep 04 PHP
php 指定范围内多个随机数代码实例
Jul 18 PHP
php动态读取数据清除最右边距的方法
Apr 12 PHP
Laravel框架模型的创建及模型对数据操作示例
May 07 PHP
JS操作XML中DTD介绍及使用方法分析
Jul 04 PHP
PHP使用Session实现上传进度功能详解
Aug 06 PHP
PHP 观察者模式深入理解与应用分析
Sep 25 PHP
详解使用php-cs-fixer格式化代码
Sep 16 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
一个简单实现多条件查询的例子
2006/10/09 PHP
php向js函数传参的几种方法
2014/08/10 PHP
PHP单例模式是什么 php实现单例模式的方法
2016/05/14 PHP
PHP一致性hash分布式算法封装类定义与用法示例
2018/08/04 PHP
Yii框架中使用PHPExcel的方法分析
2019/07/25 PHP
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
JS选项卡动态替换banner图片路径的方法
2015/05/11 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
基于hover的用法实例(推荐)
2017/07/04 Javascript
超级简易的JS计算器实例讲解(实现加减乘除)
2017/08/08 Javascript
vuejs父子组件之间数据交互详解
2017/08/09 Javascript
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
基于Vue 服务端Cookies删除的问题
2018/09/21 Javascript
简单学习5种处理Vue.js异常的方法
2019/06/17 Javascript
JS前端面试必备——基本排序算法原理与实现方法详解【插入/选择/归并/冒泡/快速排序】
2020/02/24 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
Python实现中文数字转换为阿拉伯数字的方法示例
2017/05/26 Python
django使用xlwt导出excel文件实例代码
2018/02/06 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
Python Gluon参数和模块命名操作教程
2019/12/18 Python
解决python虚拟环境切换无效的问题
2020/04/30 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
2021/01/06 Python
美国在线宠物用品商店:Entirely Pets
2017/01/01 全球购物
机电专业个人自荐信格式模板
2013/09/23 职场文书
创业计划实施的7大步骤
2014/02/05 职场文书
商场中秋节活动方案
2014/02/07 职场文书
社区敬老月活动实施方案
2014/02/17 职场文书
向领导表决心的话
2014/03/11 职场文书
幼儿园六一亲子活动方案
2014/08/26 职场文书
个人专业技术总结
2015/03/05 职场文书
出纳试用期工作总结2015
2015/05/28 职场文书
公司的力量观后感
2015/06/05 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书