thinkphp6 phpunit单元测试完整用法

本文讲述了作者在ThinkPHP6中如何克服官方不支持的挑战,成功整合PHPunit进行单元测试,包括对控制器方法的测试和如何模拟框架内部逻辑。介绍了关键步骤,如创建请求对象注入框架、手动初始化APP以及如何处理模型和服务层测试的问题。

概述

  • 折腾了一个上午搞这个单元测试,的亏是通了,不然要面壁去了。

thinkphp6官方并没有支持phpunit的集成使用,不知道为什么,虽然不妨碍我们直接使用phpuint,单局限性很大,我们只能对通用类和不涉及框架层面进行测试,如接口验证之类。这样的单元测试意义并不大,不能注入到核心里面,还不如直接看接口返回得了,造啥测试,既然用了必然是想要代码质量更高的。

打通任督二脉

想要运行并测试框架内部的逻辑,那么怎么引入就成了最大的问题,官方没有说明,这里是基于折腾过的文章进行验证通过的。

主要原理就是,通过构建请求信息Request对象,将其注入到初始化的框架APP里面,要手动初始化框架,如果框架具备的上文,初始化后,通过app对象请求指定的方法和控制器,如此就有了下文。就可以通过下文返回得结果进行断言等操作。

研究thinkphp6的phpunit整合血泪史
https://blog.yongit.com/note/782453.html

首先安装 phpuint

composer require phpunit/phpunit --dev

1.测试控制器方法产出结果

<?php
declare (strict_types=1);
namespace tests;

final class DemoTest extends \PHPUnit\Framework\TestCase
{
   
   
    /**
     * 这里是测试控制的某个方法产出的结果
     * 
     * @test
     */
    public function testControllerDemo(): void
    {
   
   
        $request 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值