Warning
This library is still in early development.
Install through Composer:
composer require --dev lendable/phpunit-extensionsBy default, when creating a mock all method return values are stubbed based on typing information. E.g.
public function foo(): int
{
return $this->foo;
}Will be stubbed to return 0. This library ships two mechanisms to simplify disabling this functionality to force all methods called on a mock to be configured explicitly.
- If you extend from
Lendable\PHPUnitExtensions\TestCase, this will be enabled. If you can just extend from this class it is the simplest way to opt-in to all functionality. - The trait
Lendable\PHPUnitExtensions\StrictMockingis provided to enable this alone. If you are forced into using another abstract*TestCase(e.g. from a vendor) this can be added into the class hierarchy.
A PHPStan extension is provided to enforce usage of features of this library.
Add the rules into your PHPStan configuration:
rules:
# ...
- vendor/lendable/phpunit-extensions/phpstan/rules.neonConfigure any exclusions you may have:
lendable_phpunit:
enforceStrictMocking:
pardoned:
- Foo\Bar\MyTest