Я пишу тест для проверки недействительных запросов DELETE на Rails API с использованием Rspec.Rails Тесты JSON API не возвращают json при вызове исключения
Это то, что у меня есть:
context 'invalid id number' do
it 'returns success: false' do
xhr :delete, :destroy, id: 999999999999999999
expect(JSON.parse(response.body)['success']).to be_false
end
end
Postgres бросает какую-то целого исключения переполнения (как это должно быть), но в моей спецификации я не могу смотреть на объект JSON, потому что он никогда не образуется. Как я могу заставить его возвращать {success: false} вместо пустой строки? Как заставить объект JSON вернуться, несмотря на исключение?
Когда я использую Поддеть, чтобы посмотреть на объект JSON, я получаю эту ошибку: JSON::ParserError: A JSON text must at least contain two octets!
потому response.body оценивает пустую строку ""
Whoa, чуть не забыл включить код контроллера.
def destroy
if (site == ::MyModel.find(params[:id]))
site.destroy
render :json => {success: true}
else
render :json => {success: false}
end
вы можете сохранить запрос с помощью 'find_by (id: ...)' и затем проверить 'site.present?'. Таким образом, вы избежите запуска запроса для 'empty?' – rafb3