knutle / pest-mock-recorder
Lets you easily bind a mock to the service container that can flexibly record history every time it is used
Requires
- php: ^8.0
- illuminate/contracts: ^9.15
- ramsey/uuid: ^4.3.1
- spatie/laravel-package-tools: ^1.11.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.8
- nunomaduro/collision: ^6.2
- nunomaduro/larastan: ^2.1.6
- orchestra/testbench: ^7.5
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.2
- pestphp/pest-plugin-mock: ^1.0.3
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.1.1
- phpunit/phpunit: ^9.5.20
- spatie/laravel-ray: ^1.29.7
This package is auto-updated.
Last update: 2024-11-09 15:34:19 UTC
README
Lets you easily bind a mock to the service container that can flexibly record details every time it is used. Especially helpful for generating a list of specific actions and their parameters throughout a job, then using that to match a snapshot or ensure that a certain sequence of actions happened in the right order.
Installation
You can install the package via composer:
composer require knutle/pest-mock-recorder
Usage
# Automatically bind the mock to the service container while instantiating it $mock = MockRecorder::bind(MyClass::class); # Setup expectations for only recording $mock->expect( write: fn (string $name) => $name ); # Resolve your mock from the service container and watch the history fill up app(MyClass::class)->write('Write 1'); // returns null app(MyClass::class)->write('Write 2'); // returns null # Both entries can now be found in the history variable $mock->history == [ 'Write 1', 'Write 2' ] # You can also return an array to also return data from your mock $mock->expect( write: fn (string $name) => [ $name, "Hello $name!" ] ); app(MyClass::class)->write('Bob'); // returns "Hello Bob!" # Still it records to history $mock->history == [ 'Write 1', 'Write 2', 'Bob', ]
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.