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 11 PHP
php中根据变量的类型 选择echo或dump
Jul 05 PHP
php中定时计划任务的实现原理
Jan 08 PHP
php删除文件夹及其文件夹下所有文件的函数代码
Jan 23 PHP
基于php下载文件的详解
Jun 02 PHP
php使用百度翻译api示例分享
Jan 31 PHP
PHP遍历并打印指定目录下所有文件实例
Feb 10 PHP
在Win7 中为php扩展配置Xcache
Oct 08 PHP
PHP静态文件生成类实例
Nov 29 PHP
php抓取网站图片并保存的实现方法
Oct 29 PHP
PHP导出带样式的Excel示例代码
Aug 28 PHP
简单实现PHP留言板功能
Dec 21 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中stream(流)的用法
2014/03/25 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
最新制作ThinkPHP3.2.3完全开发手册
2015/11/23 PHP
js 弹出菜单/窗口效果
2011/10/30 Javascript
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
2012/02/03 Javascript
JQuery给元素添加/删除节点比如select
2013/04/02 Javascript
在javaScript中关于submit和button的区别介绍
2013/10/20 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
2013/12/14 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
深入了解JavaScript中的Symbol的使用方法
2015/07/28 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
jQuery 弹出层插件(推荐)
2016/05/24 Javascript
AngularJS实现标签页的两种方式
2016/09/05 Javascript
jQuery通过ajax快速批量提交表单数据
2016/10/25 Javascript
JS刷新父窗口的几种方式小结(推荐)
2016/11/09 Javascript
jQuery中的一些小技巧
2017/01/18 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
2017/02/20 Javascript
详解Node.js开发中的express-session
2017/05/19 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
elementui的默认样式修改方法
2018/02/23 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
2018/07/23 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
原生js+ajax分页组件
2020/01/30 Javascript
[41:08]TNC vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Random 在 Python 中的使用方法
2018/08/09 Python
对python 通过ssh访问数据库的实例详解
2019/02/19 Python
Python tkinter常用操作代码实例
2020/01/03 Python
python 常见的反爬虫策略
2020/09/27 Python
军训鉴定表自我鉴定
2014/02/13 职场文书
给校长的建议书100字
2014/05/16 职场文书
任命书模板
2014/06/04 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
学校中层领导培训心得体会
2016/01/11 职场文书
python中%格式表达式实例用法
2021/06/18 Python