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 相关文章推荐
模拟SQLSERVER的两个函数:dateadd(),datediff()
Oct 09 PHP
谈PHP生成静态页面分析 模板+缓存+写文件
Aug 17 PHP
PHP中json_encode、json_decode与serialize、unserialize的性能测试分析
Jun 09 PHP
php 搜索框提示(自动完成)实例代码
Feb 05 PHP
php在线代理转向代码
May 05 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
Jun 13 PHP
PHP实现的简单网络硬盘
Jul 29 PHP
详解php魔术方法(Magic methods)的使用方法
Feb 14 PHP
Symfony模板的快捷变量用法实例
Mar 17 PHP
Yii2实现增删改查后留在当前页的方法详解
Jan 13 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
Mar 04 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实现文件安全下载
2006/10/09 PHP
PHP加速 eAccelerator配置和使用指南
2009/06/05 PHP
php smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
PHP通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
PHP、Java des加密解密实例
2015/04/27 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
javascript重写alert方法的实例代码
2013/03/29 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
2013/12/29 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
JS中JSON对象和String之间的互转及处理技巧
2016/04/06 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
用jmSlip编写移动端顶部日历选择控件
2016/10/24 Javascript
巧用canvas
2017/01/21 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
JavaScript实现AOP详解(面向切面编程,装饰者模式)
2017/12/19 Javascript
electron中使用bootstrap的示例代码
2018/11/06 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
javascript实现点击产生随机图形
2021/01/25 Javascript
python定时采集摄像头图像上传ftp服务器功能实现
2013/12/23 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
Python基础中所出现的异常报错总结
2016/11/19 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
logging level级别介绍
2020/02/21 Python
总裁岗位职责
2013/12/04 职场文书
《英英学古诗》教学反思
2014/04/11 职场文书
学校欢迎标语
2014/06/18 职场文书
小学教师求职信范文
2015/03/20 职场文书
2015年领班工作总结
2015/04/29 职场文书
mysql查询的控制语句图文详解
2021/04/11 MySQL
Python还能这么玩之只用30行代码从excel提取个人值班表
2021/06/05 Python
【TED出品】天梯非主流开心游1700 划水骑士
2022/03/31 魔兽争霸