Laravel 5.8 Illuminate\Validation\ValidationException:给定的数据无效

par*_*oid 1 php phpunit laravel laravel-5 laravel-unit-test

我的控制器中有这样的 store 方法

public function store()
{
     request()->validate(['family'=>'required']);
     User::create(request()->all());
     return redirect('/users');
}
Run Code Online (Sandbox Code Playgroud)

和这样的测试方法

/** @test */
public function a_user_require_family()
{
    $this->withoutExceptionHandling();
    $this->post('/users', [])->assertSessionHasErrors('family');
}
Run Code Online (Sandbox Code Playgroud)

它告诉我这个:

1) Tests\Feature\UserTest::a_user_require_family
Illuminate\Validation\ValidationException:给定的数据无效。

Aze*_*ame 7

您不能使用$this->withoutExceptionHandling(),也->assertSessionHasErrors('family')因为所有验证错误都是Illuminate\Validation\ValidationException您明确禁止运行的异常处理。

只需删除$this->withoutExceptionHandling(),您的测试就会通过。