我是Laravel的新手,他试图编写一个单元测试以根据变量检查渲染视图中的特定文本。要渲染视图,我正在使用\View::make('route', ['some' => 'variables'])
。使用$view->render()
,我正在检索视图的内容,但是由于视图可能试图在无法正常工作的地方生成url而遇到错误:
Call to a member function parameter() on null
这来自RouteUrlGenerator(扩展了\ Illuminate \ Routing \ RouteUrlGenerator),所涉及的行是:
resolve('request')->route()->parameter(...
问题是:如何确保resolve('request')->route()
在单元测试中有效并且可以使用?基于关于stackoverflow的几个不同的问题,我已经尝试注入一个Request对象,像这样:
$this->app->instance(\Illuminate\Http\Request::class, new \Illuminate\Http\Request());
但问题仍然存在。
(作为替代方案,我也尝试使用$response = $this->->get('/my/route')
来检索路线的内容,但是刀片文件的必要变量似乎没有以这种方式在控制器中设置。因此,还要花更多的时间一般的问题是,最好的方法是在Laravel中对视图进行单元测试。)