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开启gzip页面压缩实例代码
Mar 11 PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
Nov 07 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
Jun 20 PHP
destoon复制新模块的方法
Jun 21 PHP
CodeIgniter中实现泛域名解析
Jul 19 PHP
PHP使用pear自带的mail类库发邮件的方法
Jul 08 PHP
php+curl 发送图片处理代码分享
Jul 09 PHP
php判断是否连接上网络的方法实例详解
Dec 14 PHP
PHP Class SoapClient not found解决方法
Jan 20 PHP
详解在YII2框架中使用UEditor编辑器发布文章
Nov 02 PHP
详解PHP队列的实现
Mar 14 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
Jan 25 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+js实现的无刷新下载文件功能示例
2019/08/23 PHP
jQuery+PHP实现图片上传并提交功能
2020/07/27 PHP
javascript Array.remove() 数组删除
2009/08/06 Javascript
一个支持任意尺寸的图片上下左右滑动效果
2014/08/24 Javascript
对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解
2016/04/11 Javascript
Bootstrap弹出框(modal)垂直居中的问题及解决方案详解
2016/06/12 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
nodejs构建本地web测试服务器 如何解决访问静态资源问题
2017/07/14 NodeJs
Spring boot 和Vue开发中CORS跨域问题解决
2018/09/05 Javascript
JS实现点击拉拽轮播图pc端移动端适配
2018/09/05 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
Python Web框架Flask下网站开发入门实例
2015/02/08 Python
Python的Django REST框架中的序列化及请求和返回
2016/04/11 Python
python装饰器实例大详解
2017/10/25 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
2019/12/26 Python
Python用input输入列表的实例代码
2020/02/07 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
python+flask编写一个简单的登录接口
2020/11/13 Python
关于Python错误重试方法总结
2021/01/03 Python
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
瑞士领先的网上超市:LeShop.ch
2018/11/14 全球购物
波兰购物网站:MALL.PL
2019/05/01 全球购物
英格兰足协官方商店:England Store
2019/07/12 全球购物
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
Chemist Warehouse中文网:澳洲连锁大药房
2021/02/05 全球购物
车间班组长的职责
2013/12/13 职场文书
致跳远运动员广播稿
2014/02/11 职场文书
合作经营协议书
2014/04/17 职场文书
艺术学院毕业生自荐信
2014/07/05 职场文书
护士个人总结范文
2015/02/13 职场文书
女性健康讲座主持词
2015/07/04 职场文书
导游词之云南丽江古城
2019/09/17 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript