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.MVC的模板标签系统(三)
Sep 05 PHP
php中文件上传的安全问题
Oct 09 PHP
PHP实现图片简单上传
Oct 09 PHP
MYSQL环境变量设置方法
Jan 15 PHP
PHP 数字左侧自动补0
Mar 31 PHP
PHP中用正则表达式清除字符串的空白
Jan 17 PHP
php上传图片之时间戳命名(保存路径)
Aug 15 PHP
PHP实现简单实用的验证码类
Jul 29 PHP
PHP可变变量学习小结
Nov 29 PHP
利用 fsockopen() 函数开放端口扫描器的实例
Aug 19 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
Aug 02 PHP
Laravel如何同时连接多个数据库详解
Aug 13 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结合正则获取字符串中数字
2015/06/19 PHP
yii2中关于加密解密的那些事儿
2018/06/12 PHP
分享别人写的一个小型js框架
2007/08/13 Javascript
javascript 限制输入和粘贴(IE,firefox测试通过)
2008/11/14 Javascript
jquery获得option的值和对option进行操作
2013/12/13 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
Nodejs+express+html5 实现拖拽上传
2014/08/08 NodeJs
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
JavaScript常用正则验证函数实例小结【年龄,数字,Email,手机,URL,日期等】
2017/01/23 Javascript
vue init失败简单解决方法(终极版)
2017/12/22 Javascript
4 种滚动吸顶实现方式的比较
2019/04/09 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
2019/06/10 Javascript
利用python将pdf输出为txt的实例讲解
2018/04/23 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
python pands实现execl转csv 并修改csv指定列的方法
2018/12/12 Python
python并发爬虫实用工具tomorrow实用解析
2019/09/25 Python
python3获取文件中url内容并下载代码实例
2019/12/27 Python
Python MySQL 日期时间格式化作为参数的操作
2020/03/02 Python
Python Scrapy图片爬取原理及代码实例
2020/06/12 Python
python如何使用腾讯云发送短信
2020/09/17 Python
详解Python yaml模块
2020/09/23 Python
python中count函数知识点浅析
2020/12/17 Python
浅谈matplotlib默认字体设置探索
2021/02/03 Python
Python如何使用神经网络进行简单文本分类
2021/02/25 Python
CSS3中媒体查询结合rem布局适配手机屏幕
2019/06/10 HTML / CSS
详解FireFox下Canvas使用图像合成绘制SVG的Bug
2019/07/10 HTML / CSS
奥地利顶级内衣丝袜品牌英国站:Wolford英国
2016/08/29 全球购物
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
工作中的自我评价如何写好
2013/10/28 职场文书
会计与出纳自荐书范文
2014/03/16 职场文书
先进党支部申报材料
2014/12/24 职场文书
财务经理岗位职责
2015/01/31 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android
永中文档在线转换预览基于nginx配置部署方案
2022/06/10 Servers