chubbyphp / chubbyphp-mock
Chubbyphp Mock
Installs: 179 892
Dependents: 36
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 1
Open Issues: 0
Requires
- php: ^8.2
- ext-json: *
- phpunit/phpunit: ^11.5.0
Requires (Dev)
- chubbyphp/chubbyphp-dev-helper: dev-master
- infection/infection: ^0.29.8
- php-coveralls/php-coveralls: ^2.7.0
- phpstan/extension-installer: ^1.4.3
- phpstan/phpstan: ^2.0.3
README
Description
A helper trait simplify mocking within phpunit.
Requirements
- php: ^8.2
Installation
Through Composer as chubbyphp/chubbyphp-mock.
composer require chubbyphp/chubbyphp-mock "^2.0" --dev
Usage
<?php declare(strict_types=1); namespace MyProject\Tests\Unit\RequestHandler; use Chubbyphp\Mock\MockMethod\WithCallback; use Chubbyphp\Mock\MockMethod\WithReturn; use Chubbyphp\Mock\MockMethod\WithReturnSelf; use Chubbyphp\Mock\MockObjectBuilder; use MyProject\RequestHandler\PingRequestHandler; use PHPUnit\Framework\TestCase; use Psr\Http\Message\ResponseFactoryInterface; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\StreamInterface; final class PingRequestHandlerTest extends TestCase { public function testHandle(): void { $builder = new MockObjectBuilder(); /** @var ServerRequestInterface $request */ $request = $builder->create(ServerRequestInterface::class, []); /** @var StreamInterface $responseBody */ $responseBody = $builder->create(StreamInterface::class, [ new WithCallback('write', static function (string $string): int { $data = json_decode($string, true); self::assertArrayHasKey('date', $data); return \strlen($string); }), ]); /** @var ResponseInterface $response */ $response = $builder->create(ResponseInterface::class, [ new WithReturnSelf('withHeader', ['Content-Type', 'application/json']), new WithReturnSelf('withHeader', ['Cache-Control', 'no-cache, no-store, must-revalidate']), new WithReturnSelf('withHeader', ['Pragma', 'no-cache']), new WithReturnSelf('withHeader', ['Expires', '0']), new WithReturn('getBody', [], $responseBody), ]); /** @var ResponseFactoryInterface $responseFactory */ $responseFactory = $builder->create(ResponseFactoryInterface::class, [ new WithReturn('createResponse', [200, ''], $response), ]); $requestHandler = new PingRequestHandler($responseFactory); self::assertSame($response, $requestHandler->handle($request)); } }
Copyright
2025 Dominik Zogg