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 结果集的分页实现代码
Mar 10 PHP
zend framework多模块多布局配置
Feb 26 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
Dec 19 PHP
深入php self与$this的详解
Jun 08 PHP
php文件上传的简单实例
Oct 19 PHP
PHP回溯法解决0-1背包问题实例分析
Mar 23 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
Nov 23 PHP
Yii2创建表单(ActiveForm)方法详解
Jul 23 PHP
thinkPHP模板中for循环与switch语句用法示例
Nov 30 PHP
PHP编程中的Session阻塞问题与解决方法分析
Aug 07 PHP
php7 错误处理机制修改实例分析
May 25 PHP
PHP number_format函数原理及实例解析
Jul 14 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
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
PHP实现图片压缩的两则实例
2014/07/19 PHP
php中解析带中文字符的url函数分享
2015/01/20 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
thinkphp 验证码 的使用小结
2017/05/07 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
基于php+MySql实现学生信息管理系统实例
2020/08/04 PHP
DWR Ext 加载数据
2009/03/22 Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
2016/08/01 Javascript
Vue插件写、用详解(附demo)
2017/03/20 Javascript
vue element项目引入icon图标的方法
2018/06/06 Javascript
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
vue使用codemirror的两种用法
2019/08/27 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
解读Python中degrees()方法的使用
2015/05/18 Python
python 在指定范围内随机生成不重复的n个数实例
2019/01/28 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
2019/08/08 Python
django 解决自定义序列化返回处理数据为null的问题
2020/05/20 Python
python字符串的index和find的区别详解
2020/06/20 Python
意大利领先的线上奢侈品销售电商:Eleonora Bonucci
2017/10/17 全球购物
日本最大级玩偶手办购物:あみあみ Amiami
2018/04/23 全球购物
专科毕业生学习生活的自我评价
2013/10/26 职场文书
《骆驼和羊》教学反思
2014/02/27 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
秋季校运会广播稿100字
2014/09/18 职场文书
运动会闭幕式致辞
2015/07/29 职场文书
敬老院活动感想
2015/08/07 职场文书
公证书
2019/04/17 职场文书
工作一年自我鉴定
2019/06/20 职场文书
想要创业,那么你做好准备了吗?
2019/07/01 职场文书
Window server 2012 R2 AD域的组策略相关设置
2022/04/28 Servers
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS