Я хочу написать тест RSpec, который проверяет, что в случае ошибки 500 в моем API на базе Sinatra ошибка будет обнаружена определением Sinatra error
и возвращена клиенту в формате JSON. То есть вместо того, чтобы возвращать какую-либо страницу с ошибкой HTML, она возвращает JSON, как этот, чтобы соответствовать остальной части API:
{
success: "false",
response: "Internal server error"
}
Однако я не уверен, как на самом деле вызвать ошибку 500 в моем приложении Sinatra, чтобы протестировать это поведение с помощью RSpec. Я не могу найти способ издеваться над маршрутами Синатры, поэтому в настоящее время моя лучшая идея - этот маршрут, который намеренно вызывает 500. Это похоже на довольно ужасное решение:
get '/api/v1/testing/internal-server-error' do
1 / 0
end
Есть ли способ смоделировать маршруты Синатры, чтобы я мог, скажем, с помощью блока обработчика маршрутов /
вызвать исключение, следовательно, вызвать 500? Если нет, есть ли какой-либо другой способ намеренно вызвать ошибку 500 в моем приложении?