使用路由创建新的请求对象

时间:2019-07-09 21:23:59

标签: php laravel testing phpunit

有人能很好地创建带有路由的新请求对象吗?

我正在尝试测试正在制作的中间件,该中间件在请求上使用->route()方法,因此我可以检查任何绑定的模型。

我能够创建具有URL和参数属性的基本请求对象,但是我不知道如何从route()方法中获取一个值

这可能吗? (不仅仅是使用get / post进行集成测试)。

我尝试执行以下操作,以确保通过绑定中间件处理路由绑定,但似乎没有附加任何东西。

Route::model('post', Post::class);

$request = new \Illuminate\Http\Request;

$request = $request->createFromBase(Request::create('posts/1', 'GET', ['post' => 1]));

$request->setRouteResolver(function () use ($request) {
   return Route::get('posts/{post}', function (Request $request, Post $post) { })->name('post.show')->bind($request);
});

$bindingMiddleware = $this->app->make(SubstituteBindings::class);

$bindingMiddleware->handle($request, function ($request) { return $request; });

0 个答案:

没有答案