quillphp/testing

Professional testing utilities for the Quill PHP framework

Maintainers

Package info

github.com/quillphp/quill-testing

Homepage

pkg:composer/quillphp/testing

Statistics

Installs: 11

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

0.0.1 2026-04-06 13:40 UTC

This package is auto-updated.

Last update: 2026-04-06 13:41:27 UTC


README

Fluent testing utilities for the Quill PHP Framework, making it easy to test your handlers and middleware without full HTTP round-trips.

This package provides a TestClient that wraps the internal App::handle() lifecycle, allowing you to simulate requests and assert on the results with a clean, expressive API.

Installation

composer require quillphp/testing

Usage

Getting Started

To test your application, create a TestClient instance passing your App kernel:

use Quill\Testing\TestClient;

class UserTest extends \PHPUnit\Framework\TestCase {
    public function test_it_returns_user_data() {
        $app = new \Quill\App();
        // ... set up routes ...
        
        $client = new TestClient($app);
        
        $client->get('/users/1')
            ->assertStatus(200)
            ->assertJson(['id' => 1, 'name' => 'John']);
    }
}

TestClient Methods

The TestClient supports all standard HTTP methods:

  • $client->get(string $uri, array $headers = [])
  • $client->post(string $uri, array $data = [], array $headers = [])
  • $client->put(string $uri, array $data = [], array $headers = [])
  • $client->patch(string $uri, array $data = [], array $headers = [])
  • $client->delete(string $uri, array $data = [], array $headers = [])

TestResponse Assertions

The response returned by the client allows for fluent assertions:

Method Description
assertStatus(int $code) Asserts the HTTP status code.
assertJson(array $subset) Asserts that the response body contains the given JSON subset.
assertHeader(string $name, string $value) Asserts a specific header value.
assertSee(string $string) Asserts that the response body contains the given string.

License

This package is open-sourced software licensed under the MIT license.