Skip to content

Commit

Permalink
Add initial README content (#15)
Browse files Browse the repository at this point in the history
  • Loading branch information
ben-challis authored Dec 2, 2023
1 parent 3d04736 commit 49987c4
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,42 @@ Install through Composer:
```bash
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.

```php
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:

```neon
rules:
# ...
- vendor/lendable/phpunit-extensions/phpstan/rules.neon
```

Configure any exclusions you may have:

```neon
lendable_phpunit:
enforceStrictMocking:
pardoned:
- Foo\Bar\MyTest
```

0 comments on commit 49987c4

Please sign in to comment.