Вы должны сделать свой метод самодостаточным, как так
use Request;
/**
* returns each section of current url in an array
*
* @return array
*/
public function getUrlPath(Request $request)
{
return explode("/", $request->path());
}
Вы можете добавить Request
в качестве параметра содержащего класса, как, что:
use Request; //it is a facade https://laravel.com/docs/5.3/facades
class MyRequestHandler
{
protected $request;
public function __construct(Request $request)
{
$this->request = $request;
}
public function getUrlPath()
{
return explode("/", $this->request->path());
}
}
чем тест как то:
public function testGetUrlPath(){
$expected = ['url','to','path'];
$request = Request::create(implode('/', $expected)); // https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpFoundation/Request.php#L313
$class = new MyRequestHandler($request);
// Getting results of function so we can test that it has some properties which were supposed to have been set.
$result = $class->getUrlPath();
$this->assertEquals($expected, $result);
}
Возможно, было бы лучше, если бы вы подумали о том, что вспомогательный метод является самодостаточным, w i-я зависимости, предоставляемые в качестве параметров. Это позволит легко тестировать. 'public function getUrlPathElements ($ path)' позволит вам самостоятельно тестировать его без использования механизма маршрутизации Laravel. –
Вы имели в виду метод, как в этом вопросе? http://stackoverflow.com/questions/29781103/how-to-test-laravel-5-controllers-methods –