laravel之phpunit单元测试

laravel之phpunit单元测试laravel之phpunit单元测试

大家好,又见面了,我是你们的朋友全栈君。

1,什么是单元测试

PHPUnit 是一个用PHP编程语言开发的开源软件,是一个单元测试框架。PHPUnit由Sebastian Bergmann创建,源于Kent Beck的SUnit,是xUnit家族的框架之一。PHPUnit中国官网

2,为什么要使用单元测试?

单元测试是对单独的代码对象进行测试的过程,比如对函数、类、方法进行测试。单元测试可以使用任意一段已经写好的测试代码,也可以使用一些已经存在的测试框架,比如JUnit、PHPUnit或者Cantata++,单元测试框架提供了一系列共同、有用的功能来帮助人们编写自动化的检测单元,例如检查一个实际的值是否符合我们期望的值的断言。单元测试框架经常会包含每个测试的报告,以及给出你已经覆盖到的代码覆盖率。使用 phpunit 进行自动测试,会使你的代码更健壮,减少后期维护的成本,也是一种比较标准的规范,现如今流行的PHP框架都带了单元测试,如Laraval,Symfony,Yii2等,单元测试已经成了标配。

3,phpunit使用

如果是windows系统,配置环境变量。

D:\WWW\laravel\项目\vendor\bin;

有如下显示说明配置成功:

PHPUnit 5.7.27 by Sebastian Bergmann and contributors.

Runtime:       PHP 7.0.12 with Xdebug 2.4.1
Configuration: D:\WWW\laravel\项目名称\phpunit.xml

执行命令 phpunit tests/ExampleTest.php

测试案例:

    public function testExample3()
    {
        $stack = [];    //新建数组$stack,给它一个数组,看看输出的结果是否和我们预期的一致,判断是否一致就要开始断言了~~
        $this->assertEquals(0, count($stack));  //count()提取数组的长度,断言0和数组的长度相等,相等的话测试成功
        array_push($stack, 'foo');              //array_push向数组尾部插入元素'foo'
        $this->assertEquals('foo', $stack[count($stack) - 1]);
        $this->assertEquals(1, count($stack));
        $this->assertEquals('foo', array_pop($stack)); //array_pop()删除数组的最后一个元素,返回值是被删除的元素
        $this->assertEquals(0,count($stack) );  //判断括号内右边的值是否和左边的一致,左边的值是我们的预期输出
    }

执行结果:
效果图
总共有1个测试案例,1个测试成功,5个测试单元,总共花了时间712毫秒和内存8M,·代表测试成功

.	成功时输出
F 运行过程中一个断言失败时输出
E 运行过程中产生一个错误时输出
R 被标记为有风险时输出
S 被跳过时输出
I 被标记为不完整或未实现时输出
w 运行过程中产生一个警告

4,常用的PHPunit断言方法

assertEquals() 判断是否相等
assertContains()判断输入是否包含指定的值
assertInstanceOf()
assertTrue/assertFalse 断言是否为真值还是假
assertEquals 判断输出是否和预期的相等
assertGreaterThan 断言结果是否大于某个值,同样的也有LessThan 小于
GreaterThanOrEqual 大于等于
LessThanOrEqual 小于等于
assertType 判断是否属于指定类型
assertNull 判断是否为空值
assertFileExists 判断文件是否存在
assertRegExp 根据正则表达式判断

[ Lumen 5.3 文档 ] 更多特性 —— 单元测试

5,phpstorm 配置,运行 phpunit

1,检查php版本

在这里插入图片描述

2,setting里设置自动加载组件文件路径

在这里插入图片描述

3,在要测试的单元中,如图操作

在这里插入图片描述

4,创建测试单元

创建测试单元

5,会在tests下生成一个测试类

在这里插入图片描述

6,在这里可以做测试了,测试结果如下。

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/105886.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • fragment与activity生命周期方法是一致的_android的生命周期

    fragment与activity生命周期方法是一致的_android的生命周期如果我们在Fragment和它的宿主Activity的生命周期中都加上Log日志,你能顺利写出他们的执行顺序吗?我们先来看一张Google官方的图片:咋一听,Activity生命周期有七个方法,Fragment生命周期有十一个方法,貌似挺复杂的,其实我们只需要明白到底是谁带领着谁去执行生命周期的方法,就能很快弄明白这个问题。在创建的过程中,是Activity带领Fragment执行生命周期中

  • tomcat7下载安装

    tomcat7下载安装进入apache官网下载tomcat7在最左边的找到download下的tomcat7并点击。选择“32-bit/64-bitWindowsServerInstaller”下载.下载完成后,将安装文件移动到本地硬盘D安装tomcat7,双击下载后的文件,进入安装界面,点next,继续IAgree,组件选择使用默认选项,点next,最后如图所示:

  • 强化学习 模仿学习 于robot[通俗易懂]

    强化学习 模仿学习 于robot[通俗易懂]写在前面:分享知识是再好不过的事情。这篇文章主要是总结自己最近看的一些文章以及相关知识。自己在暑假实习的时候学习的就是在物理仿真平台上做robot的强化学习,未来读PhD的时候也被老师继续分配到了这个方向,哈哈。可能要一直从入门到入土了,趁着最近写researchproposal的时候,将最近的理解记录一下。鉴于笔者知识水平有限,若有不妥当之处,还请指出。摘要:robot强化学习模仿学…

  • clover直接进windows_黑苹果CLOVER引导去除多余引导项Windows10 MacOS DeepinLinux Fyde…「建议收藏」

    现在新的电脑安装系统,引导方式都改为了EFI,至于EFI和MBR引导的区别可以自行度娘。用了EFI引导安装黑苹果(关于黑苹果的安装,除非你喜欢折腾,否则建议直接找某宝,几十块十几分钟就能装好)自然就会使用CLOVER.但是CLOVER的默认添加启动项的方式,在安装完多系统后,就会有冗余。先看两张效果图吧。优化前:优化后:由于我目前这个电脑不仅安装了Windows和MAC,还装了别的Linux系统。…

  • 大话设计模式目录_大话设计模式程杰mobi

    大话设计模式目录_大话设计模式程杰mobi大话设计模式之备忘录模式

  • plsql安装教程

    plsql安装教程先安装Oracle客户端下载地址:再安装plsqldev下载地址:如果需要汉化,可安装汉化补丁包下载地址:配置数据库找到安装路径,如C:\app\xxx\product\11.2.0\client_1\Network\Admin,将此目录下Sample文件夹里的tnsnames.ora文件移到上层Admin目录下。tnsnames.ora里添加数据库配置AUTOSPD1=(…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号