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面向对象的方法重载两种版本比较
Sep 08 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
Jun 19 PHP
php学习笔记之基础知识
Nov 08 PHP
PHP中创建和验证哈希的简单方法实探
Jul 06 PHP
全面解读PHP的人气开发框架Laravel
Oct 15 PHP
PHP接收json 并将接收数据插入数据库的实现代码
Dec 01 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
Jan 07 PHP
PHP使用socket发送HTTP请求的方法
Feb 14 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
May 05 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
Oct 19 PHP
php探针使用原理和技巧讲解
Sep 17 PHP
PHP项目多语言配置平台实现过程解析
May 18 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中session与cookie的比较
2015/01/27 PHP
php设计模式之委托模式
2016/02/13 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
php车辆违章查询数据示例
2016/10/14 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
Prototype的Class.create函数解析
2011/09/22 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
JavaScript获取网页中第一个链接ID的方法
2015/04/03 Javascript
jquery实现简单的无缝滚动
2015/04/15 Javascript
jQuery拖拽插件gridster使用指南
2015/04/21 Javascript
7个有用的jQuery代码片段分享
2015/05/19 Javascript
nodejs实现获取某宝商品分类
2015/05/28 NodeJs
Bootstrap每天必学之表单
2015/11/23 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
2016/10/10 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
处理JavaScript值为undefined的7个小技巧
2020/07/28 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
[01:08:09]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第二局
2016/03/02 DOTA
Python实现动态加载模块、类、函数的方法分析
2017/07/18 Python
python实现判断一个字符串是否是合法IP地址的示例
2018/06/04 Python
Python爬虫常用库的安装及其环境配置
2018/09/19 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
2020/02/07 Python
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
必须要使用游标的SQL语句有那些
2012/05/07 面试题
机关单位动员会主持词
2014/03/20 职场文书
企业优秀员工事迹材料
2014/05/28 职场文书
幼儿园秋季开学寄语
2014/08/02 职场文书
学习党的群众路线对照检查材料
2014/09/29 职场文书
2016年圣诞节义工活动总结
2016/04/01 职场文书
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android
前端框架ECharts dataset对数据可视化的高级管理
2022/12/24 Javascript