adbros/controller-tester

简单的Apitte控制器测试。

v0.3.1 2024-01-29 13:05 UTC

This package is auto-updated.

Last update: 2024-08-29 14:32:20 UTC


README

简单的Apitte控制器测试。

main workflow Code coverage Licence Downloads this Month Downloads total Latest stable

安装

composer require adbros/controller-tester --dev

配置

只需在config.neon中注册ControllerTester。

services:
    - Adbros\Tester\ControllerTester\ControllerTester

用法

public function testPostHelloWorld(): void
{
    $controllerTester = $this->container->getByType(ControllerTester::class);

    $request = $controllerTester->createRequest('/api/v1/dummy/hello-world')
        ->withMethod('POST')
        ->withJsonBody([
            'foo' => 'bar',
        ]);
    $result = $controllerTester->execute($request);

    $result->assertJson([
        'status' => 'ok',
        'payload' => [
            'foo' => 'bar',
        ],
    ]);
    $result->assertStatusCode(200);
}

TestControllerRequest API

TestControllerRequest 是一个 不可变 对象。

withParameters(array $parameters)

添加 QUERY 参数。

withMethod(string $method)

设置 HTTP 方法。默认方法是 GET

withRawBody(string $body)

设置请求原始体。

withJsonBody(array $body)

设置请求 JSON 体。

withParsedBody(array $body)

设置 POST 请求,带有解析体如 x-www-form-urlencoded。

withFile(string $name, string $filePath)

添加文件 - Psr7UploadedFile

withHeaders(array $headers)

添加 HTTP 头部。

withProtocolVersion(string $protocolVersion)

设置 HTTP 协议版本。默认协议版本是 1.1

withServerParams(array $serverParams)

添加 SERVER 参数。