Конечная точка тестирования Symfony правильно использует JSON

У меня есть API, встроенный в Symfony, использующий FOSRestBundle.

Я хочу написать простой тест, чтобы проверить, правильно ли обрабатываются ли при отправке JSON результаты, а также возвращается ли ожидаемый ответ.

Рабочий тестовый код

$user = $this->getResourceContent('userValid.json');
$this->client->request('POST', '/users', json_decode($user, true), [], $this->headers);

Я могу получить запрос на успешную отправку, указав «пользователь» в виде значений POST формы. Однако это не то поведение, которое я пытаюсь проверить.

Неудачный тестовый кейс

$user = $this->getResourceContent('userValid.json');
$this->client->request('POST', '/users', [], [], $this->headers, $user);

Это то, что я хочу проверить, предоставив JSON в качестве тела запроса, чтобы его можно было обработать. Однако это не работает, так как $form->isValid() проверка не пройдена, так как форма не была отправлена.

Действие контроллера

public function postUserAction(Request $request)
{
$user = new User();
$form = $this->createForm(new UserType(), $user, ['method' => 'POST']);
$form->handleRequest($request);

if ($form->isValid()) {

// TODO: Persist user

$view = $this->jsendView(['user' => $user], 201, Jsend::SUCCESS);
$view->getSerializationContext()->setGroups(['Default', 'private']);
return $view;
}

return $form;
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]