我正在为我的Symfony 3应用程序编写功能测试,我遇到的问题是控制器中的每个方法只接受自定义请求,而不是默认的Request
类,它在BrowserKit爬虫中使用。如何在Symfony 3爬虫中模拟自定义Request类或以其他方式执行?
这是我的代码:
ListController.php
public function listAction(CustomRequest $request)
{
return $this->render('list.html.twig');
}
ListControllerTest.php
$client = static::createClient();
$crawler = $client->request('GET', '/list/');
当我正在接受测试时,我正在接收:
TypeError: Argument 1 passed to AppBundle\Controller\ListController::listAction() must be an instance of AppBundle\Component\Http\CustomRequest, instance of Symfony\Component\HttpFoundation\Request given
这是我的app.php。在这里,我正在替换标准请求方法:
$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = CustomRequest::createFromGlobals();
$response = $kernel->handle($request);
$response->send();