Осветить \ Validation \ ValidationException: указанные данные были недействительными. Вызывается при попытке получить JSON из ответа во время тестирования - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть следующий тест:

public function testStoreMemberValidation()
{
    $response = $this->withExceptionHandling()->post('/api/members', [
        "name" => "Eve",
        "age" => "invalid"
    ], ['X-Requested-With' => 'XMLHttpRequest']);

    dd($response->json());
};

Я пытаюсь утверждать, что ответ имеет форму ошибки проверки. Метод контроллера следующий:

public function store(Request $request)
{
    $data = $request->validate([
        'name' => 'required|string',
        'age' => 'required|integer',
    ]);

    Member::create($data);
}

Однако всякий раз, когда я вызываю любое утверждение, которое вызывает $response->json() (а это большинство из них), я получаю исключение:

Осветить \ Validation \ ValidationException: указанные данные были недействительными.

Как я могу выполнить утверждения для этого ответа, не выдавая эту ошибку?

Обратите внимание, я использую Laravel 5.7.

1 Ответ

0 голосов
/ 22 апреля 2019

у вас есть withExceptionHandling() в вашем тесте, удалите его, и оно должно работать.

$response = $this->withExceptionHandling()->post('/api/members', [
        "name" => "Eve",
        "age" => "invalid"
    ], ['X-Requested-With' => 'XMLHttpRequest']);

должно быть

$response = $this->post('/api/members', [
            "name" => "Eve",
            "age" => "invalid"
        ], ['X-Requested-With' => 'XMLHttpRequest']);
...