factory = new TaskRunnerFactory(); } /** @test */ public function properlyCreatesService(): void { $loggerMock = $this->prophesize(LoggerInterface::class); $logger = $loggerMock->reveal(); $containerMock = $this->prophesize(ContainerInterface::class); $getLogger = $containerMock->get(LoggerInterface::class)->willReturn($logger); $container = $containerMock->reveal(); $taskRunner = ($this->factory)($container, ''); $loggerProp = $this->getPropertyFromTaskRunner($taskRunner, 'logger'); $containerProp = $this->getPropertyFromTaskRunner($taskRunner, 'container'); $this->assertSame($container, $containerProp); $this->assertSame($logger, $loggerProp); $getLogger->shouldHaveBeenCalledOnce(); } private function getPropertyFromTaskRunner(TaskRunner $taskRunner, string $propertyName) { $ref = new ReflectionObject($taskRunner); $prop = $ref->getProperty($propertyName); $prop->setAccessible(true); return $prop->getValue($taskRunner); } }