Невозможно отправить запрос JSON в PHPUnit на Slim Framework

#json #slim

#json #тонкий

Вопрос:

Как я могу решить HttpBadRequestException проблему при использовании PHPUnit для отправки запроса JSON? У меня есть тест PHPUnit в Slim Framework 4.5, который отправляет запрос JSON. Когда я получаю данные формы в контроллере, HttpBadRequestException выдается сообщение с сообщением Malformed JSON input. , что я могу нормально отправлять запросы cURL JSON. Когда я его реализовал в PHPUnit, он не может декодировать и считывать JSON php://input .

     // PHPUnit test
    $request = $this->createJsonRequest('POST', '/hello',
            [
                'foo' => 'bar',
            ]
        )
    $response = $this->app->handle($request);

    ...

protected function createJsonRequest(
    string $method,
    $uri,
    array $data = null
): ServerRequestInterface {
    $request = $this->createRequest($method, $uri);

    if ($data !== null) {
        $request = $request->withParsedBody($data);
    }

    return $request->withHeader('Content-Type', 'application/json');
}

    // controller
    $formData = $this->getFormData();
    
 

Комментарии:

1. В этом случае нет смысла читать json из php://input , потому что тело запроса $ уже содержит данные json. Это slim 4? Какой проект Slim skeleton вы используете?

2. Я использую Slim 4.5.