Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

phpstan/phpstan-mockery

Open more actions menu

Repository files navigation

PHPStan Mockery extension

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!

Manual installation

If you don't want to use phpstan/extension-installer, include extension.neon in your project's PHPStan config:

includes:
    - vendor/phpstan/phpstan-mockery/extension.neon

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.