public function testVirtualMethod() { $router = new Router(); $router->put('', function () { return 'call put!'; }); $mockRequest = Mockery::mock(ServerRequestInterface::class); $mockRequest->shouldReceive('getUri->getPath')->andReturn('/'); $mockRequest->shouldReceive('getMethod')->andReturn('POST'); $mockRequest->shouldReceive('getParsedBody')->andReturn(['_method' => 'put']); $this->assertEquals('call put!', $router->dispatch($mockRequest)); }