У меня есть функция 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, как я упоминал выше
Исключение 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");
}
Дополнительная информация в документе
$e->getResponse()->getStatusCode()