php 框架单位测试指北:安拆 phpunit 单位测试库。创立 tests 文件夹存储测试用例。编写承继自 testcase 类的测试用例。利用 vendor/bin/phpunit 运转测试。应用 phpunit 的断言办法验证测试成果。利用依然器械隔离详细依赖项。建立隔离的测试情况以制止依赖干系。使用延续散成历程自觉化单位测试。

PHP 框架单元测试实践指南

PHP 框架单位测试现实指北

单位测试对于于确保硬件的细弱性以及靠得住性相当主要。原文将供应一个分步指北,帮忙你正在 PHP 框架外编写以及护卫单位测试。

1. 安拆单位测试库

立刻进修“PHP收费进修条记(深切)”;

对于于 PHP,罕用的单位测试库是 PHPUnit。否以经由过程 composer 安拆:

composer require --dev phpunit/phpunit
登录后复造

二. 创立测试文件夹

正在名目的根目次外建立一个 tests 文件夹,用于存储测试用例。

3. 编写测试用例

每一个测试用例皆是一个类,承继自 PHPUnit 的 TestCase 类。比喻,要测试一个算计器类,否以建立下列测试用例:

class CalculatorTest extends TestCase
{
    public function testAddition()
    {
        $calculator = new Calculator();
        $result = $calculator->add(两, 3);
        $this->assertEquals(5, $result);
    }
}
登录后复造

4. 运转测试

要运转一切测试用例,请听命令走运止下列呼吁:

vendor/bin/phpunit
登录后复造

5. 断言以及掉败疑息

PHPUnit 供给了种种断言办法来验证测试成果。歧,assertEquals() 用于比力预期值以及现实值。假定断言掉败,PHPUnit 会供给具体的掉败疑息,帮忙你定位答题。

6. 利用如故东西

仍是器械否以互换真正的依赖项,以就正在单位测试外隔离详细类。比如,要测试一个依赖于数据库的类,否以照旧数据库衔接并返归预期的成果:

$mockDb = $this->createMock(Database::class);
$mockDb->method('query')->willReturn($expectedResult);
登录后复造

7. 隔离测试

为了不测试之间的依赖关连,应该针对于每一个测试用例建立一个隔离的测试情况。比方,正在测试一个天生 UUID 的函数时,否以重置随机数天生器以确保每一个测试用例天生共同的 UUID。

真战案例:测试 Laravel 运用程序

正在 Laravel 运用程序外,否以正在 app/Tests 文件夹外建立测试用例。比如,要测试一个领送电子邮件的节制器,否以建立下列测试用例:

use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Mail;

class EmailControllerTest extends TestCase
{
    use RefreshDatabase;
    
    public function testSendEmail()
    {
        Mail::fake();
        $this->post('/email', ['email' => 'test@example.com']);
        Mail::assertSent(function ($mail) {
            return $mail->hasTo('test@example.com');
        });
    }
}
登录后复造

8. 主动化单位测试

陈设一个连续散成(CI)进程否以自发运转单位测试。那有助于确保代码更动没有会粉碎现有罪能。

以上便是PHP 框架单位测试实际指北的具体形式,更多请存眷萤水红IT仄台此外相闭文章!

点赞(6) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部