发出HTTP请求并用数据填充它

时间:2017-10-15 15:12:04

标签: laravel unit-testing testing

我试图测试Service类的validate()方法,该方法接受一个Request对象。通常,当提交前端的表单时,我将Request对象作为控制器方法中的参数并将其发送到Service,但现在我想测试该方法,我使用phpunit并且我想创建我的拥有Request对象并将它们发送到Service类,以查看它是否应该如何反应。我的测试方法如下:

public function testWhenUsernameIsNotSetGetValidationError()
{

    $request = new Request();

    $request->request->add(['email' => 'test@email.com', 'password' => 'test123', 'password_confirm' => 'test123']);

    dd($request->all());

    $this->assertFalse($this->regService->validate($request));

}

问题是,

dd($request->all())

打印出一个空数组([])。

为什么会这样?我是否需要以某种方式添加此数据?

1 个答案:

答案 0 :(得分:3)

使用merge()方法:

$request->merge(['email' => 'test@email.com', 'password' => 'test123', 'password_confirm' => 'test123']);