gyro / phake-attributes
A #[Mock] attribute for Phake inside PHPUnit and helpers.
Installs: 35 967
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 1
Open Issues: 0
Requires
- php: ^8.0
- phake/phake: ^4.2
Requires (Dev)
- phpunit/phpunit: ^10.4
README
This extension for Phake provides an attribute #[Mock]
for properties that
can be used in PHPUnit testcases via a trait that adds a before listener:
use Gyro\PhakeAttributes\Mock; use Gyro\PhakeAttributes\PhakeAttributes; use PHPUnit\Framework\TestCase; class MyServiceTestCase extends TestCase { use PhakeAttributes; #[Mock] // during setup phase in PHPUnit will call Phake::mock(MyDependencyService::class) private MyDependencyService $myDependency; public function testMyServiceMethod() : void { \Phake::when($this->myDependency)->foo()->thenReturn('bar'); // this uses named arguments and array expansion to pass ctor arguments // reflection is used to find the types needed for each argument and the // properties and mocks in current test are searched for matches based // on variable name or type. $service = new MyService(...$this->mockArgumentsFor(Myservice::class)); // if you dont want to type that much: $service = $this->newInstanceWithMockedArgumentsFor(MyService::class); } }