adbros/controller-tester

Simple Apitte Controllers testing.

v0.1.6 2020-09-29 04:46 UTC

This package is auto-updated.

Last update: 2020-11-10 12:03:42 UTC


README

Simple Apitte Controllers testing.

Build Status Code coverage Licence Downloads this Month Downloads total Latest stable

Installation

composer require adbros/controller-tester --dev

Configuration

Just register ControllerTester in config.neon.

services:
    - Adbros\Tester\ControllerTester\ControllerTester

Usage

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 is immutable object.

withParameters(array $parameters)

Add query parameters.

withMethod(string $method)

Set HTTP method. Default method is GET.

withRawBody(string $body)

Set request RAW body.

withJsonBody(array $body)

Set request JSON body.

withHeaders(array $headers)

Add HTTP headers.