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 相关文章推荐
我的论坛源代码(二)
Oct 09 PHP
php下几个常用的去空、分组、调试数组函数
Feb 22 PHP
php at(@)符号的用法简介
Jul 11 PHP
9个实用的PHP代码片段分享
Jan 22 PHP
PHP使用NuSOAP调用Web服务的方法
Jul 18 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
Mar 05 PHP
CodeIgniter 完美解决URL含有中文字符串
May 13 PHP
PHP使用curl制作简易百度搜索
Nov 03 PHP
PHP版微信小店接口开发实例
Nov 12 PHP
php 开发中加密的几种方法总结
Mar 22 PHP
PHP扩展Swoole实现实时异步任务队列示例
Apr 13 PHP
php实现网页上一页下一页翻页过程详解
Jun 28 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
yii2控制器Controller Ajax操作示例
2016/07/23 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
jquery.cvtooltip.js 基于jquery的气泡提示插件
2010/11/19 Javascript
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
JsRender for object语法简介
2014/10/31 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
AngularJs Forms详解及简单示例
2016/09/01 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
Bootstrap框架安装使用详解
2017/01/21 Javascript
js 数据存储和DOM编程
2017/02/09 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
JS实现统计字符串中字符出现个数及最大个数功能示例
2018/06/04 Javascript
浅谈js中的bind
2019/03/18 Javascript
es6函数中的作用域实例分析
2020/04/18 Javascript
[44:30]完美世界DOTA2联赛PWL S2 GXR vs Magma 第一场 11.25
2020/11/26 DOTA
Python写的贪吃蛇游戏例子
2014/06/16 Python
分享一个常用的Python模拟登陆类
2015/03/29 Python
Python实现字符串格式化输出的方法详解
2017/09/20 Python
获取CSDN文章内容并转换为markdown文本的python
2020/09/06 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
用C语言实现文件读写操作
2013/10/27 面试题
写好自荐信要注意的问题
2013/11/10 职场文书
医药类个人求职的自我评价
2014/02/12 职场文书
烹饪自我鉴定
2014/03/01 职场文书
优秀教研组申报材料
2014/12/26 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
2015年中秋晚会主持稿
2015/07/30 职场文书
公司档案管理制度
2015/08/05 职场文书
高二化学教学反思
2016/02/22 职场文书
卖车协议书范文
2016/03/23 职场文书
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android