жрет `http_errors` меняет ошибку с 500 на 404

1

У меня есть функция im testing, которая предполагает возврат ошибки 500, но после добавления 'http_errors' => 'false' к определению put, возвращаемая ошибка изменяется от 500 до 404. Это моя функция:

public function testApiAd_updateWithIllegalGroupId($adId) 
{
    $client = new Client(['base_uri' => self::$base_url]);
    try {
        $response = $client->put(self::$path.$adId, ['form_params' => [
          'name' => 'bellow content - guzzle testing',
          'description' => 'guzzle testing ad - demo',
          'group_id' => '999999999',
          ]]);
    } catch (Guzzle\Http\Exception\BadResponseException $e) {
        //Here i want to compare received error to 500
    }
}

прямо сейчас эта функция вернет server error: 500 но также прекратит выполнение классом остальных тестов, и я не могу его утвердить. как я могу использовать getStatusCode() в моей функции, получая ошибку 500, а не 404, как я упоминал выше

  • 0
    в блоке catch попробуйте $e->getResponse()->getStatusCode()
  • 0
    работает отлично! Большое спасибо!
Показать ещё 1 комментарий
Теги:
guzzle
phpunit

1 ответ

2
Лучший ответ

Исключение BadResponseException содержит исходный объект Request и Response. Таким образом, вы можете блокировать catch следующим утверждением:

} catch (Guzzle\Http\Exception\BadResponseException $e) {
        //Here i want to compare received error to 500
        $responseCode = $e->getResponse()->getStatusCode();
        $this->assertEquals(500, $responseCode, "Server Error");
    }

Дополнительная информация в документе

Ещё вопросы

Сообщество Overcoder
Наверх
Меню