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代码
Apr 09 PHP
PHP中使用CURL伪造来路抓取页面或文件
May 04 PHP
细谈php中SQL注入攻击与XSS攻击
Jun 10 PHP
探讨如何在php168_cms中提取验证码
Jun 08 PHP
解析PHP中常见的mongodb查询操作
Jun 20 PHP
PHP进行批量任务处理不超时的解决方法
Jul 11 PHP
Linux系统中为php添加pcntl扩展
Aug 28 PHP
PHP生成加减算法方式的验证码实例
Mar 12 PHP
Thinkphp5+uploadify实现的文件上传功能示例
May 26 PHP
浅谈php://filter的妙用
Mar 05 PHP
php封装的page分页类完整实例代码
Feb 01 PHP
php实现通过stomp协议连接ActiveMQ操作示例
Feb 23 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 替换模板变量实现步骤
2009/08/24 PHP
PHP中HTML标签过滤技巧
2014/01/07 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
php程序员应具有的7种能力小结
2014/11/27 PHP
PHP多进程编程之僵尸进程问题的理解
2017/10/15 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
2018/08/02 PHP
用JAVASCRIPT如何给&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;赋值
2007/04/20 Javascript
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
2013/09/25 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
探讨JavaScript语句的执行过程
2016/01/28 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
利用JS屏蔽页面中的Enter按键提交表单的方法
2016/11/25 Javascript
谈谈对vue响应式数据更新的误解
2017/08/01 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
[01:42]TI4西雅图DOTA2前线报道 第一顿早饭哦
2014/07/08 DOTA
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
2016/06/02 Python
Zabbix实现微信报警功能
2016/10/09 Python
Python实现简单的四则运算计算器
2016/11/02 Python
python脚本执行CMD命令并返回结果的例子
2019/08/14 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
2020/03/05 Python
Pyinstaller打包Scrapy项目的实现步骤
2020/09/22 Python
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
巴基斯坦购物网站:Goto
2019/03/11 全球购物
学子宴答谢词
2014/01/25 职场文书
聊城大学毕业生自荐书
2014/02/01 职场文书
校园环保建议书
2014/05/14 职场文书
实习生矿工检讨书
2014/10/13 职场文书
个人四风问题整改措施
2014/10/24 职场文书
车队安全员岗位职责
2015/02/15 职场文书
电影小兵张嘎观后感
2015/06/03 职场文书
婚礼父母致辞
2015/07/28 职场文书
新学期小学班主任工作计划
2019/06/21 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python