我寫了個 hyperf 測試用例擴充套件,可以提供和 laravel 幾乎一致的測試用例方法

qbhy發表於2020-07-21

前言

用過laravel後再用 hyperf 的小夥伴都知道,hyperf 的測試用例寫起來跟 laravel 的差距還是挺大的,不支援 response 詳細的斷言,比如狀態,響應頭等。但是有時候又不得不斷言,所以我寫了這個擴充套件。

qbhy/hyperf-testing

該擴充套件包可以提供和 laravel 幾乎一致的測試用例書寫體驗

安裝 - install

$ composer require qbhy/hyperf-testing

使用 - usage

1. 修改 HyperfTest\HttpTestCase$client,把預設的 Client 改成 Qbhy\HyperfTesting\Client
2. 修改測試用例

<?php

namespace HyperfTest\Cases\Dev;

use HyperfTest\HttpTestCase;
use Qbhy\HyperfTesting\Client;
use Qbhy\HyperfTesting\TestResponse;

/**
 * Class DevTest * @method TestResponse get($uri, $data = [], $headers = []) * @method TestResponse post($uri, $data = [], $headers = []) * @method TestResponse delete($uri, $data = [], $headers = []) * @method TestResponse put($uri, $data = [], $headers = []) * @method TestResponse json($uri, $data = [], $headers = []) * @method TestResponse file($uri, $data = [], $headers = []) * @package HyperfTest\Cases\Dev */class DevTest extends HttpTestCase
{
 public function __construct($name = null, array $data = [], $dataName = '') { parent::__construct($name, $data, $dataName); $this->client = make(Client::class); }
 public function testExample() { $this->get('/')->assertOk()->assertJsonStructure([ 'data', 'code', 'message', ]); }}

暫不支援 cookie 和 session 相關的斷言!

宣告 - statement

該包大量參考了 laravel 的程式碼。感謝 laravel 實現了那麼好用的測試用例元件。

github.com/qbhy/hyperf-testing
96qbhy@qq.com

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章