PHPUnit安装及使用示例


Posted in PHP onOctober 29, 2014

PHPUnit是zend官方大力支持的测试框架,高质量的单元测试时保证项目质量的基础,能够有效的减少BUG,改善程序。

安装PHPUnit:

在php的目录下:

pear channel-discover pear;

pear install phpunit/PHPUnit

windows下将php的环境变量加入到PATH环境变量中。
简单使用:

<?php

class StackTest extends PHPUnit_Framework_TestCase

{

 

    public function testArray()

    {

        $stack = array();

        $this->assertEquals(0, count($stack));

 

        array_push($stack, 'foo');

        $this->assertEquals('foo', $stack[count($stack)-1]);

        $this->assertEquals(1, count($stack));

 

        $this->assertEquals('foo', array_pop($stack));

        $this->assertEquals(0, count($stack));

    }

    

    /**

     * @test

     */

    public function Stringlen()

    {

        $str = 'abc';

        $this->assertEquals(3,  strlen($str));

    }

}

从上可以看到编写PHPUnit的基本规律:
(1)类Class的测试写在ClassTest中
(2)ClassTest继承PHPUnit_Framework_TestCase
(3)测试方法都是test*格式,也可以通过@test将其标注为测试方法。
(4)通过断言方法assertEquals来对实际值和预期值进行断言。

PHP 相关文章推荐
PHP+AJAX实现无刷新注册(带用户名实时检测)
Jan 02 PHP
PHP自动选择 连接本地还是远程数据库
Dec 02 PHP
一致性哈希算法以及其PHP实现详细解析
Aug 24 PHP
在PHP中运行Linux命令并启动SSH服务的例子
Jun 12 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
Apr 03 PHP
php导出中文内容excel文件类实例
Jul 06 PHP
php实现处理输入转义字符的代码
Nov 08 PHP
探究Laravel使用env函数读取环境变量为null的问题
Dec 06 PHP
Yii2下点击验证码的切换实例代码
Mar 14 PHP
PHP时间处理类操作示例
Sep 05 PHP
PHP PDOStatement::execute讲解
Jan 31 PHP
解决在Laravel 中处理OPTIONS请求的问题
Oct 11 PHP
laravel安装和配置教程
Oct 29 #PHP
laravel 4安装及入门图文教程
Oct 29 #PHP
thinkphp浏览历史功能实现方法
Oct 29 #PHP
thinkphp获取栏目和文章当前位置的方法
Oct 29 #PHP
thinkphp实现like模糊查询实例
Oct 29 #PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
Oct 29 #PHP
PHP多个文件上传到服务器实例
Oct 29 #PHP
You might like
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
PHP程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
2018/04/04 PHP
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
2012/01/15 Javascript
jquery自定义属性(类型/属性值)
2013/05/21 Javascript
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
javascript控制图片播放的实现代码
2020/07/29 Javascript
简单谈谈node.js 版本控制 nvm和 n
2015/10/15 Javascript
Perl Substr()函数及函数的应用
2015/12/16 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
JavaScript实现左右下拉框动态增删示例
2017/03/09 Javascript
node.js 发布订阅模式的实例
2017/09/10 Javascript
js判断数组是否包含某个字符串变量的实例
2017/11/24 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
详解Node 定时器
2018/02/26 Javascript
vue 指定组件缓存实例详解
2018/04/01 Javascript
微信小程序实时聊天WebSocket
2018/07/05 Javascript
angular.js实现列表orderby排序的方法
2018/10/02 Javascript
vue中使用mxgraph的方法实例代码详解
2019/05/17 Javascript
python文件比较示例分享
2014/01/10 Python
python实现对一个完整url进行分割的方法
2015/04/29 Python
使用Python神器对付12306变态验证码
2016/01/05 Python
pandas按若干个列的组合条件筛选数据的方法
2018/04/11 Python
python版本的仿windows计划任务工具
2018/04/30 Python
python itsdangerous模块的具体使用方法
2020/02/17 Python
pycharm设置默认的UTF-8编码模式的方法详解
2020/06/01 Python
Python三维绘图之Matplotlib库的使用方法
2020/09/20 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
2020/11/18 Python
巴西最大的家电和百货零售商:Casas Bahia
2016/11/22 全球购物
2014乡镇机关党员个人对照检查材料思想汇报
2014/10/09 职场文书
2014群众路线学习笔记
2014/11/06 职场文书
Golang二维切片初始化的实现
2021/04/08 Golang
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/06 其他游戏
面试官问我Mysql的存储引擎了解多少
2022/08/05 MySQL