Skip to content

Lendable/phpunit-extensions

Folders and files

NameName
Last commit message
Last commit date
Dec 8, 2024
Apr 18, 2024
May 21, 2024
May 1, 2024
Nov 26, 2023
Nov 26, 2023
Nov 26, 2023
Nov 26, 2023
Dec 2, 2023
Nov 26, 2023
Dec 2, 2023
Jul 16, 2024
Dec 30, 2024
Nov 26, 2023
Jan 31, 2024
Apr 18, 2024
Feb 6, 2024

Repository files navigation

Lendable PHPUnit Extensions

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