getMockBuilder(EngelsystemLogger::class) ->getMock(); /** @var PHPUnit_Framework_MockObject_MockObject|Application $app */ $app = $this->getMockBuilder(Application::class) ->setMethods(['make', 'instance', 'bind']) ->getMock(); $app->expects($this->once()) ->method('make') ->with(EngelsystemLogger::class) ->willReturn($logger); $app->expects($this->once()) ->method('instance') ->with('logger', $logger); $app->expects($this->atLeastOnce()) ->method('bind') ->withConsecutive( [LoggerInterface::class, 'logger'], [EngelsystemLogger::class, 'logger'] ); $serviceProvider = new LoggerServiceProvider($app); $serviceProvider->register(); } }