adbros / controller-tester
简单的Apitte控制器测试。
v0.3.1
2024-01-29 13:05 UTC
Requires
- php: >=7.4
- contributte/apitte: ^0.9 | ^0.10 | ^0.11 || ^0.12
- nette/tester: ^2.0
Requires (Dev)
- contributte/qa: ^0.3.0
- contributte/tester: ^0.3.0
- nepada/phpstan-nette-tester: ^1.1
- php-parallel-lint/php-console-highlighter: ^1.0
- php-parallel-lint/php-parallel-lint: ^1.2
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.0
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-nette: ^1.0
- phpstan/phpstan-strict-rules: ^1.0
README
简单的Apitte控制器测试。
安装
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 参数。