У меня есть метод обновления с попыткой поймать исключение, я написал тестовый класс, но это не распространяется на крылатый блок,тестового модуль в Laravel
public function update(Request $request, $id)
{
$links= Link::find($id);
if (empty($links)) {
return \Response::json(["status" => "error", "errors" => "Not found"], HttpResponse::HTTP_NOT_FOUND);
}
try {
$links= $links->update($request->all());
} catch (\Exception $e) {
return \Response::json(['status' => $e->getTraceAsString(), 'errors' => 'errors.ERROR_DATABASE_UPDATE'], HttpResponse::HTTP_INTERNAL_SERVER_ERROR);
}
return \Response::json(array('success' => true, 'link' => $links));
}
класс теста:
$response = $this->json('POST', '/links', [
'title' => 'link1'])->seeStatusCode(200);
$responseContent = json_decode($response->response->getContent());
$this->assertEquals($responseContent->success, true);
$linkToUpdate = $responseContent->link;
$updatedTitle = $linkToUpdate ->title. "Updated";
$responseUpdate = $this->json('PUT', '/links/' . $linkToUpdate->id, [
'title' => $updatedTitle])->seeStatusCode(200);
$responseContentUpdate = json_decode($responseUpdate->response->getContent());
$this->assertEquals($responseContentUpdate->success, true);
}
Но я не рассматриваю блок исключений catch, как я могу это сделать с помощью своего тестового класса?
Спасибо за ваш ответ @dops! Я положил его в начале тестового метода, но получил эту ошибку «Неустранимая ошибка: вызов неопределенного метода LinkControllerTest :: expectException» – Lena
@Lena 'LinkControllerTest' должен расширять' PHPUnit \ Framework \ TestCase' –
@PiotrDawidiuk, он уже расширяет TestCase, что я сделал, это то, что я добавил $ this-> expectException (\ Exception :: class); как раз в начале метода тестирования обновлений (до того, как код, который я сделал), это правильно? – Lena