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.
You can install the package via composer:
composer require knutle/pest-mock-recorder
# 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',
]
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.