В спецификации системы я пытаюсь проверить правильность обработки тайм-аута базы данных.Когда это происходит, возникает новый TinyTds::Error
.
Здесь мой контроллер (EMData
обрабатывает соединение с БД)
class Json::ChartController < ApplicationController
rescue_from TinyTds::Error, with: :connection_timed_out
def index
data = EMData.call(params)
respond_to do |format|
format.json { render json: data }
end
end
def connection_timed_out(_error)
format.json { head :request_timeout }
end
end
Здесь моя спецификация
context 'when the SQL Server connection times out' do
let(:data_class) { class_spy('EMData').as_stubbed_const }
it 'a feedback message is displayed' do
allow(data_class).to receive(:call).and_raise(TinyTds::Error.new('message'))
...
SUBMIT FORM VIA JS
...
expect(page).to have_content("Some Content")
end
Спецификация кажется довольно простой для меня.Однако, когда я его запускаю, я получаю
Запрос на обработку ошибок в приложении Rack {GET / json / chart /}
/app/controllers/json/chart_controller.rb:24:в `format '....
Ошибка / Ошибка: format.json {head: request_timeout}
ArgumentError:
too few arguments
Я что-то здесь не так?