prodikl / mocktation
PHP Mocking using annotations
Requires
- phpunit/phpunit: ^6.5
This package is not auto-updated.
Last update: 2025-03-16 07:56:20 UTC
README
PHP Mocking using annotations
Mocktation lets you define return values of class methods when mocking, instead of having to define each return value in your tests.
By annotating using @mockReturn "test"
, the method will return "test"
by default when calling the method after creating a mock using $this->createMock(CLASSNAME)
in your tests.
This speeds up development since you can define default mock return values when writing the method, instead of retroactively deciding on mock values.
-
Install Mocktation
composer require-dev prodikl/mocktation
-
Extend
Mocktation/Testcase
instead of PHPUnit TestCasesuse Mocktation\TestCase; class ExampleTest extends TestCase { public function testGetNum(){ /** @var Example|MockObject $mock */ $mock = $this->createMock(Example::class); $this->assertEquals(5, $mock->getNum(234)); } }
-
Use annotations to describe mocking in your methods
class Example { /** * Accepts an int $num and returns it * * @param $num int The num to return * @return int The example num * * @mockReturn 5 */ public function getNum($num){ return $num; } }
Here's a list of Mocktation annotations
@mockReturn [returnValue]
- Returns the [returnValue] when called@mockReturnArgument [argumentNumber]
- Returns the [argumentNumber] when called. [argumentNumber] starts from 0.