laravel单元测试

Laravel框架中的测试驱动开发:单元测试与特征测试指南 在软件开发中,测试是确保代码质量和功能正确性的关键环节。Laravel框架提供了强大的测试支持,包括单元测试和特征测试(以前称为功能测试)。本文将详细介绍如何在Laravel中编写单元测试和特征测试,包括测试环境的搭建、测试类的编写、断言的使用,以及如何执行测试。 阅读详情

laravel单元测试

  • 单元测试目录: 项目更目录下的 tests 目录

  • 目录说明

    1. Feature : 功能测试 (测试整个接口)
    2. Unit: 单元测试 (函数级别的测试)
  • 实例流程

    1. 在 Feature 下新建 AuthTest

    2. 新建一个测试函数, 必须已 test 开头

      <?php
      
      namespace Tests\Feature;
      
      use Tests\TestCase;
      
      class AuthTest extends TestCase
      {		
          // 测试函数必须要以 'test' 开头,后面接有意义的函数名
          public function testRegister()
          {
              // 请求接口
              $response = $this->post('wx/auth/register');
      
              // 响应内容
              echo $response->getContent();
          }
      }
      
    3. 运行, 在 phpstorm 中点击函数前面运行按钮。

    4. 点击 解释器, 我本地是 docker 中的环境, 这里选择 docker,选择 镜像 和 PHP路径 (which php 查看)(TODO 我的环境是 docker隐射到本地,这里必须用本地的php环境才可以调试!)

    5. 修改 根目录下的 phpunit.xml

      <server name="DB_CONNECTION" value="mysql"/>
      <server name="DB_DATABASE" value="litemall_test"/>  # litemall_test 数据库名
      
    6. 2个示例

      <?php
      
      namespace Tests\Feature;
      
      use Illuminate\Foundation\Testing\DatabaseTransactions;
      use Tests\TestCase;
      
      class UserTest extends TestCase
      {
          // 为了防止脏数据,不会真的写入数据
          use DatabaseTransactions;
      
          public function testRegister()
          {
              $response = $this->post('/wx/auth/register', [
                  'username' => 'test02',
                  'password' => '123456',
                  'mobile' => '18811112222',
                  'code' => '123'
              ]);
      
              // 断言
              $response->assertStatus(200);
      
              // 拿到原始值
              $ret = $response->getOriginalContent();
      
              // 断言对比
              $this->assertEquals(0, $ret['errno']);
      
              // 断言对比,不为空
              $this->assertNotEmpty($ret['data']);
          }
      
          /**
           * 异常的情况
           */
          public function testRegisterMobile()
          {
              $response = $this->post('/wx/auth/register', [
                  'username' => 'test02',
                  'password' => '123456',
                  'mobile' => '188111122212',
                  'code' => '123'
              ]);
      
              // 断言
              $response->assertStatus(200); 
      
              // 拿到原始值
              $ret = $response->getOriginalContent();
      
              // 断言对比
              $this->assertEquals(707, $ret['errno']);
          }
      
      
      }
      
    7. 如上解析

      • use DatabaseTransactions; 加了之后,所有数据库的事务都不会添加到数据库中。有效防止脏数据。

      • assertEquals, assertNotEmpty 都是断言,用户判断得到的结果的判断。

      • 如果没有断言,需要加一个备注。则不会报错。

        /**
          * @doesNotPerformAssertions
          */
        
  • 用命令创建单元测试

    php artisan make:test AuthTest --unit (加上 --unit 是单元测试放在 Unit 文件夹下,不加是功能测试,放在 Feature 文件夹下。)

laravel之phpunit单元测试 1,什么是单元测试? PHPUnit 是一个用PHP编程语言开发的开源软件,是一个单元测试框架。PHPUnit由Sebastian Bergmann创建,源于Kent Beck的SUnit,是xUnit家族的框架之一。PHPUnit中国官网 2,为什么要使用单元测试? 单元测试是对单独的代码对象进行测试的过程,比如对函数、类、方法进行测试。单元测试可以使用任意一段已经写好的测试代码,也可以使用一些... 阅读详情

相关推荐

Laravel接口教程:构建和测试RESTful接口的单元测试

通过编写单元测试,我们可以确保我们的接口在不同情况下能够正确地处理请求并返回正确的响应。这有助于我们提高代码的质量和可靠性,并确保我们的接口在开发过程中保持一致和可靠。在本教程中,我们将学习如何使用Laravel框架构建和测试RESTful接口的单元测试。通过编写单元测试,我们可以确保我们的接口在不同情况下能够正确地处理请求并返回正确的响应。现在,我们可以开始编写单元测试来验证我们的接口是否按预期工作。现在,我们可以运行我们的单元测试来验证我们的接口是否按预期工作。目录下,创建一个新的控制器文件,例如。

BgScratch的博客 278

Laravel单元测试

简介 Laravel 植根于测试,实际上,内置使 PHPUnit 对测试提供支持是开箱即用的,并且phpunit.xml文件已经为应用设置好了。框架还提供了方便的辅助方法允许你对应用进行优雅的测试。 默认情况下,tests目录包含了两个子目录:Feature和Unit,分别用于功能测试和单元测试,单元测试专注于小的、相互隔离的代码,实际上,大部分单元测试可能都是聚焦于单个方法。功能测试可用于测试较大区块的代码,包括若干组件之前的交互,甚至一个完整的HTTP请求。 单元测试 & 功能测...

白开水的博客 2183

Laravel-Unit-Test-Example:Laravel单元测试

Laravel-Unit-Test-Example:Laravel单元测试

PHP和Laravel(7):Laravel单元测试与集成测试

PHPUnit是PHP的单元测试框架,用于编写和运行测试。在Laravel项目中,PHPUnit已经作为依赖被包含在内,但你可能需要确保它正确安装并配置。

kkchenjj的博客 1007

基于laravel框架的PHPunit 测试爬坑

基于 Laravel 框架的 phpunit 单元测试爬坑记录。适用于laravel初学者,和单元测试初学者。后期代码有过修改,欢迎大家加好友给建议~(WX:YAN-ZI-ZY)

使用phpunit进行接口自动化测试

年初一个偶然的机会接触到了phpunit,一个用PHP编程语言开发的开源软件,也是一个单元测试框架,有效利用的话可以大大提高接口遍历的效率。废话不多说,直接干货。 1.安装 在php的目录下 pear channel-discover pear; pear install phpunit/PHPUnit 2.配置 首先新建一个lib文件夹存放的配置文件,然后再新建一个transfer.php的文件 <?php function do_Post($url, $fields, $extraheader = array()){ $ch = curl_init(); curl_setop

Laravel 单元测试

文章目录前言创建测试文件运行测试DatabaseTransactionshttp测试常用断言添加测试数据 前言 当前使用Laravel8.x 一代版本一代神 创建测试文件 # 项目根目录下使用php artisan 命令创建 php artisan make:test UserTest # tests/Feature/UserTest.php # 类中的每一个public方法即一个测试用例 # 需要进行数据库,缓存...相关测试 # 请配置 项目根目录下 phpunit.xml 文件 运行测试 #

qq_29744347的博客 1285

安时积分法和开路电压法结合估算锂电池SOC

基于安时积分法和开路电压法结合的锂电池SOC估计Simulink仿真建模,利用安时积分法计算放电过程中的SOC,在搁置状态利用开路电压法进行SOC修正。

qq_39304296的博客 2552

Laravel - 单元测试/phpunit

主要用于学习在Laravel框架中使用单元测试。

"代码"的日常搬运 5327

Ubuntu AX200 iwlwifi-cc-46.3cfab8da.0.tgz无法下载的解决办法

AX200 iwlwifi-cc-46.3cfab8da.0.tgz 无法下载网页出问题使用 其他方法来进行但是前提还是有网络。

chen20170325的博客 1039

华为HPLC模组全拆解之电力载波收发原理分析

电力线载波通信(PLC)是一种使用电力线进行数据传输的通信技术,即利用现有电网作为信号的传输介质,使电网在传输电力的同时可以进行数据传输。目前根据所用频段的不同,低压电力线载波通信一般分为窄带电力线载波通信(10KHz~500KHz)和宽带电力线载波通信(2MHz~20MHz)。这里的频率可以简单理解为单片机串口的通信波特率,频率越小通信速度越慢,频率越大通信速度越快。为了研究电力载波通信原理,笔者以华为的一款宽带电力载波模组为例进行详细的分析,该模组主控采用的是海思芯片,型号为Hi3921EV100。

xingxingdiandeng69的博客 2万+

Laravel中单元测试的坑

使用Laravel 的你知道这个事情吗?也许这只是我见识太少,对单元测试了解太少了! 今天在写自己小项目的单元测试时,遇到一个坑!~我登录后,想进行测试检测用户是否登录的操作!~ 因为是登录后有进行用户信息缓存的,所以在检测是否登录时就是去缓存中进行查看,看是否有对应的Key的信息,如果有就将用户信息取出,并返回,如果没有则返回登录超时或未登录的响应。 但是今天写了个单元测试,死活

boboidea 2484

CUBEMX ADC 单/多通道+DMA

本文使用的是STM3F103C8T6 Cubemx进行单/多通道DMA配置。

记录学习 1403

laravel单元测试学习笔记

1) 异常测试     使用背景:为了使业务逻辑更严谨,在bll文件中经常会有各种if else语句并抛异常,而在写对应的单元测试时,我们要考虑到每种情况,并试图提高覆盖率。     方法:使用setExpectedException()方法来设定所预期的异常。     例:测试gold/backend/app/Bll/Zc/House.php的changeRoom方法

wilson's blog 4884

了解你的GPU:深入探讨AMD SMI

2024年9月17日 作者:Matt Elliott对于使用AMD硬件的系统管理员和高级用户来说,性能优化和高效的资源监控至关重要。AMD系统管理界面命令行工具`amd-smi`正是为了解决这些需求而设计的。amd-smi是一个多功能的命令行工具,专门用于管理和监控AMD硬件,主要侧重于GPU。作为未来取代`rocm-smi`的工具,`amd-smi`有望成为跨广泛设备的AMD硬件管理的主要工具。

数字人生 4520

机器学习 -- 信用卡评分模型 -- 互联网金融风控

互联网金融主要分为资金类和资产类。资金类主要是理财产品,吸储,主要指标是用户转化、留存和复投,重在客户运营。资产类主要是贷款,包括消费金融和现金贷,小额贷款属于此类,主要目的是用户转化,还款和风险控制,信用卡评分模型就属于风险控制。 信用评分作用是对贷款申请人(信用卡申请人)做风险评估分值的方法。 信用卡评分是以大量数据的统计结果为基础,根据客户提供的资料和历史数据对客户的信用进行评估,评分卡模型...

XiaoMaEr66的博客 2418

laravel 之 Unit 单元测试

在进行项目开发的时候,经常会对我们的类,函数,http请求等进行测试,看结果是否符合我们的预期。 对于http 请求我们通常会使用postman 来进行测试。 那么如果我们需要测试某一个类,某一个方法,需要怎么办? 可能我们会这样做:在类或者方法调用后对结果进行打印,然后使用postman 去请求对应接口。 这样做有那些坏处呢: 可能会在你的代码中出现很多var_dump() 代码。 在你调用该类/方法 之前有很多步骤是你不需要的。(比如在调用之前对数据库进行了相关操作)。造成脏数据。 由于以上原

钚该钚想 919

【物联网毕设】多模态智能门禁系统设计(STM32+人脸识别+蓝牙联动)

本文详细介绍了基于STM32的多模态智能门禁系统设计,整合了人脸识别、蓝牙联动、RFID和密码等多种开锁方式。文章从硬件选型、电路设计、嵌入式软件编程到手机APP开发,提供了完整的毕设实现方案与调试指南,帮助物联网与嵌入式方向的学生构建一个功能全面、可扩展的智能门禁系统。

rain6的博客 246

Laravel单元测试使用示例

Laravel单元测试指南 Laravel内置PHPUnit支持单元测试,测试文件存放在tests/Unit目录。主要步骤包括:1)通过composer安装PHPUnit依赖;2)使用Artisan命令创建测试类;3)编写测试方法并使用断言验证结果;4)通过Artisan命令或IDE运行测试。最佳实践包括:区分单元测试与功能测试、使用数据库事务回滚、生成测试覆盖率报告、遵循测试金字塔原则(大量单元测试+少量功能测试)。Laravel提供了便捷的测试辅助方法,如assertDatabaseHas等数据库断言

qq_44304677的博客 1112

2025年11月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(二)

本文整理了2025年11月架构设计师考试的16-30题真题及解析,涵盖多个计算机系统知识领域。主要内容包括:Linux绝对路径以根目录开始(A);模块调用下层数量用扇出表示(B);游乐园问题通过集合运算得出10人未游玩(B);磁盘位示图计算为200字节(C);测试用例核心是输入与预期输出(D)。其他题目涉及软件可靠性测试概念(B错)、评价程序准确度排序(真实程序最高,A)、测试阶段顺序(单元→组装→系统,A)、Web服务器压力测试前置步骤(C)、分时系统响应时间影响因素(用户数量多,A)、逆向工程方法(基于

一几文的编程学习笔记。 221

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Laravel 单元测试-模拟认证的用户

在 Laravel 编写单元测试时经常会遇到需要模拟认证用户的时候,比如新建文章、创建订单等,那么在 Laravel unit test 中如何来实现呢? 官方解决方法 Laravel 的官方文档中的测试章节中有提到: Of course, one common use of the session is for maintaining state for the authentica...

250

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Laravel57单元测试phpunit

首先进入Laravel57根目录,因为本机没有安装phpunit phpunit --version 提示未找到命令 实际上Laravel的命令在vendor/bin下 将 phpunit.bat 复制到根目录,并修改第3行,修改后如下: SET BIN_TARGET=%~dp0/vendor/phpunit/phpunit/phpunit phpunit --version PHPUnit ...

猛犸象 750

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

laravel 的单元测试

不知道为什么使用 laravel 单元测试时, 会提示 Cannot open file "Tests\Feature\ExampleTest". 网上找了很久也没有解决办法 大多是说 phpunit 没有全局安装 可是我全局安装后, 再运行 php artisan test --filter ExampleTest 依旧提示 No tests executed! 技术有限, 后来找到另一个解决方式, 在项目根目录运行 : vendor/bin/phpunit tests/Feature/Examp.

believer_li的博客 466
上一篇: MAC设置服务器免密码登录
下一篇: uniapp h5分享封装
自娱自乐22
博客等级 码龄18年 241粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值