lendable / phpunit-extensions
Extensions to PHPUnit
Installs: 37 117
Dependents: 3
Suggesters: 0
Security: 0
Stars: 2
Watchers: 28
Forks: 0
Open Issues: 5
Requires
- php: ^8.2
- phpunit/phpunit: ^11.1
Requires (Dev)
- ergebnis/composer-normalize: ^2.42.0
- lendable/composer-license-checker: ^1.2.0
- php-cs-fixer/shim: ^3.54.0
- phpstan/phpstan: ^1.10.67
- phpstan/phpstan-deprecation-rules: ^1.1.4
- phpstan/phpstan-phpunit: ^1.3.16
- phpstan/phpstan-strict-rules: ^1.5.5
- rector/rector: 1.0.4
This package is auto-updated.
Last update: 2024-10-30 22:40:38 UTC
README
Warning
This library is still in early development.
Installation
Install through Composer:
composer require --dev lendable/phpunit-extensions
Features
Strict mocking
By 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\StrictMocking
is 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.
PHPStan
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.neon
Configure any exclusions you may have:
lendable_phpunit: enforceStrictMocking: pardoned: - Foo\Bar\MyTest