我有使用覆盖的Symfony \ Component \ HttpFoundation \ Request
的遗留代码use Symfony\Component\HttpFoundation\Request as CoreRequest;
class Request extends CoreRequest
{
所以控制器看起来像
public function myAction(OverridedRequest $request)
{
我想为这些控制器编写一些简单的测试,但是我收到了有关不兼容类型的错误。
1)测试\ AppBundle \ Controller \ ResidentControllerTest :: testGetResidents
TypeError:传递给的参数1 AppBundle \ Controller \ ResidentController :: getResidentsAction()必须是 AppBundle \ Component \ HttpFoundation \ Request的实例,实例 Symfony \ Component \ HttpFoundation \ Request
如何修复测试以确保正确的工作?
答案 0 :(得分:1)
我的猜测是你必须创建用于测试目的的自定义app_test.php
前置控制器:
cp web/app_dev.php web/app_test.php
而不是:
// ...
$request = Request::createFromGlobals();
// ...
指示Symfony使用您的自定义请求:
// ...
$request = \AppBundle\Component\HttpFoundation\Request::createFromGlobals();
// ...
请务必将环境名称从dev
更改为test
:)