phpstan/phpstan-mockery

PHPStan Mockery extension

Maintainers

👁 ondrejmirtes

Package info

github.com/phpstan/phpstan-mockery

Type:phpstan-extension

pkg:composer/phpstan/phpstan-mockery

Statistics

Installs: 26 470 284

Dependents: 751

Suggesters: 2

Stars: 103

Open Issues: 11

2.0.0 2024-10-14 03:18 UTC

Requires

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 89a949d0ac64298e88b7c7fa00caee565c198394


README

👁 Build
👁 Latest Stable Version
👁 License

This extension provides the following features:

  • Mockery::mock(), Mockery::spy(), and Mockery::namedMock() return an intersection type (e.g. Foo&MockInterface) so that the mock can be used as both the mocked class and a mock object. See the detailed explanation of intersection types.
  • Interprets Foo|\Mockery\MockInterface in phpDoc so that it results in an intersection type instead of a union type. This can be disabled by setting the mockery.convertUnionToIntersectionType parameter to false.
  • shouldReceive(), shouldNotReceive(), shouldHaveReceived(), shouldNotHaveReceived(), allows(), and expects() methods are understood on mock objects.
  • makePartial() and shouldAllowMockingProtectedMethods() return static, preserving the intersection type for chained calls.
  • Alias (alias:) and overload (overload:) mock prefixes are handled.
  • Partial mock syntax (ClassName[methodName]) is supported.
  • Multiple interfaces passed as comma-separated strings or as separate arguments are resolved.
  • Constructor argument arrays passed to mock() are handled correctly.

Installation

To use this extension, require it in Composer:

composer require --dev phpstan/phpstan-mockery

If you also install phpstan/extension-installer then you're all set!