PHPUnit的使用

本文详细介绍了如何在PhpStorm中集成并使用PHPUnit进行单元测试。首先展示了测试结果,包括正常和错误的测试用例。接着,逐步讲解了安装PHPUnit、配置PHP版本、设置PHPUnit和运行脚本的步骤。最后,给出了一个具体的测试类实例,包含多个测试方法,如数组操作的测试。通过这样的集成,可以便捷地进行脚本和服务的稳定性和性能测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用效果

先看下使用效果,我这里是直接在PhpStorm中集成使用的。
由上图测试结果可以看出
StackTest、Stack2Test、Stack3Test单元测试正常
Stack4Test测试有错误,并且标明了错误的具体位置。
我们还可以看到性能 :Time: 00:00.031, Memory: 6.00 MB

前言

PHPUnit是一款轻量级的PHP测试框架。
我们可以通过它来测试脚本、服务、通过断言的方式来校验服务的稳定性
我们还可以测试脚本、服务的性能

PHPUnit手册:点击跳转

安装

PHPUnit的安装方式有很多,但其他方式都可以不用看,看我这个就可以了。其他的真的很麻烦,使用也不方便。
使用composer方式安装:(不了解composer的先去百度了解下)

composer require phpunit/phpunit ^9

集成PhpStorm

PHPUnit的使用方式有多种,但是看我这种集成到PhpStorm一键使用就好了,其他的手动方式太麻烦了,不用看了。

1.配置php版本
点击File | Settings | Languages & Frameworks | PHP,配置PHPlevel和CLI,需要7.2版本
在这里插入图片描述
在这里插入图片描述
2.配置PHPUnit
点击File | Settings | Languages & Frameworks | PHP | Test Frameworks,选择Use Composer autoloader 配置好对应autoload.php路径,点击右边蓝色的刷新键。
点击Apply,确认配置
在这里插入图片描述
3.配置运行脚本
点击Run | Edit Configuration
在这里插入图片描述
配置运行脚本名称、测试类的文件夹路径。
在这里插入图片描述
4.编写测试类

<?php
require_once __DIR__ . '/../vendor/autoload.php';

use PHPUnit\Framework\TestCase;

class StackTest extends TestCase
{
    /** @var
     * 栈测试数据
     */
    protected $stack;

    /**
     * @var \Api\ApiServer
     * 测试服务类
     */
    protected $apiServer;

    /**
     * 测试数组进出
     */
    public function testPushAndPop()
    {
        $stack = [];
        $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));
    }


    /**
     * 测试用例初始化
     */
    protected function setUp(): void
    {
        $this->stack = [];
        $this->apiServer = new \Api\ApiServer();
        $this->apiServer->initUserId(1);
    }

    /**
     * api服务测试
     */
    public function testApiServer()
    {
        $data = $this->apiServer->getData();
        $this->assertArrayHasKey('ack', $data);
        $this->assertArrayHasKey('data', $data);
    }

    /**
     * 空数组测试
     */
    public function testEmpty()
    {
        $this->assertTrue(empty($this->stack));
    }

    /**
     * 数组push测试
     */
    public function testPush()
    {
        array_push($this->stack, 'foo');
        $this->assertEquals('foo', $this->stack[count($this->stack)-1]);
        $this->assertFalse(empty($this->stack));
    }

    /**
     * 数组pop测试
     */
    public function testPop()
    {
        array_push($this->stack, 'foo');
        $this->assertEquals('foo', array_pop($this->stack));
        $this->assertTrue(empty($this->stack));
    }
}

5.运行脚本
在这里插入图片描述
大功告成!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

share_9527

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值