PHPUint 学习笔记
来源:互联网 发布:js怎么判断对象为空 编辑:程序博客网 时间:2024/06/16 21:40
什么是PHPUint?
以下内容,摘抄与百度百科
PHPUnit是一个轻量级的PHP测试框架。它是在PHP5下面对JUnit3系列版本的完整移植,是xUnit测试框架家族的一员(它们都基于模式先锋Kent Beck的设计)。
这里需要注意的是,PHPUnit是用来对PHP脚本做单元测试的。同时PHPUnit工具本身是也是PHP脚本。
PHPUnit有什么用呢?
在敏捷开发中,讲究产品的快速迭代,在迭代的过程中,如何保证产品的稳定。即:新开发的代码,不会影响原有功能。 一个很重要的手段就是做单元测试。PHPUnit就是做单元测试的。
PHPUnit是如何做单元测试的呢?
首先:测试对象是PHP的函数。
其次: 模拟函数的参数,调用被测试代码,然后判断输出是否满足预期。这里注意,错误的预期也是一种预期。
PHPUnit的学习方法:
http://www.phpunit.cn/ 为PHPUnit的官方网站。
http://www.phpunit.cn/manual/current/zh_cn/installation.html 为PHPUnit的官方手册。
罗嗦了很多,开始正文。
一 PHPUnit的安装
详细步骤可以参考:http://www.phpunit.cn/manual/current/zh_cn/installation.html
安装之前明确几个概念:
1. 你需要测试的PHP是哪个版本的, 请下载对应的版本。我选择的是6.1版本,目的是为了测试PHP7
2. PHPunit目前可以支持linux系统,也可以支持window系统
3. PHPunit存在的方式有很多。 一种是以phar模式(phar是一PHP的一种压缩包)。一种是以源码模式存在。 建议使用源码。 有时间可以学习一下单元测试原理。
4. 通过composer可以下载源码(如下图,摘抄至PHPunit手册,第一章)
5. 一个很重的插件,DBUnit. 用途,模拟数据库。有经验的PHPer都知道,代码难免要和数据库打交道。
举个简单的例子,用户登录,一般都要从数据获取用户信息,比较密码。 这个函数如何测试呢? 测试前,我们需要将用户信息导入到数据库,然后再测试。 这个时候就需要用到DBUnit. 下载方法
安装完成后: 查看版本如下:
[vagrant@localhost ~]$ phpunit -version
PHPUnit 6.1.0 by Sebastian Bergmann and contributors.
unrecognized option -- e
二 简单的测试:
1. 目录树如下:
src--
demo1.php
test-- 需要测试的代码
demo1Test.php.
2. 代码如下:
demo1.php 代码如下:
简单的登录代码,为了简化,只判断用户名称为guest返回1,表示登录成功
<?php class demo1{public function login(){$userName=$_GET["userName"];$passWord=$_GET["password"];//为简单期间,判断$userName="guest"就返回成功if($userName=="guest"){return 1;}else{return 0;}}}?>
demo2.php
1.测试代码:
a. 首先测试类,需要继承TestCase. 注意这里使用的是 PHPUnit6.1 .其他版本的PHPUnit 有可能继承版本不一样。
b. 然后需要实例化需要测试的类,调用被测试的函数
c. 使用函数,判断返回值
d. 注意注释。 1. PHPUnit的注释是有意义的。这里表示login函数需要被测试。 其他注释说明见PHPUnit手册
2. 注释的写法有讲究。以/** 开头。两个星号,不能多,不能少 。以*/结束
<?phpuse PHPUnit\Framework\TestCase;require dirname(__DIR__)."/src/demo1.php";class demo1Test extends TestCase{/**@test*/public function login(){$_GET["userName"]="guest";$_GET["password"]=1;$demoInstance=new demo1();$result=$demoInstance->login();$this->assertEquals($result,1);}}
开始测试:
[vagrant@localhost demo]$ phpunit testPHPUnit 6.1.0 by Sebastian Bergmann and contributors.. 1 / 1 (100%)Time: 26 ms, Memory: 4.00MBOK (1 test, 1 assertion)
1.其中test为测试的路径,phpunit会自动查找test目录下面的XXXTest.php开始执行,测试/**@test*/标注的或
以testxxx开始的函数。
今天介绍了,什么是PHPUnit, 以及他的作用。 然后说了如何安装,以及如何测试。 在实际开发中,还会涉及到测试环境的搭建,数据的测试, mocker的使用,覆盖率等知识。 后面章节在叙述。
因本人水平有限,文章难免存在错误,希望大家批评指正。
- PHPUint 学习笔记
- 使用phar包配置phpuint
- 学习笔记?
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- 学习笔记
- [leetcode206]Reverse Linked List
- caffe资源汇总
- freecodecamp小项目---弹幕发射器
- Shopping与迭代器
- 数据库从RDS迁入自己服务器上问题记录
- PHPUint 学习笔记
- ACM常用算法-大数四则,高精度(Java)
- 编写Avocado测试
- 解决EditText自动获取焦点问题
- 微分方程的数值解法——常微分方程——差分法(1)
- HTML CSS 进阶
- Qt工程pro文件的简单配置(尤其是第三方头文件和库)
- 0418-子元素选择器
- java设计模式——工厂模式三