Как я отключаю обработчики спасения в приложениях Ruby on Rails, когда я запускаю функциональные тесты?

В вашем data() у вас есть continents_selected вместо continent_selected. Удалите S после континента, и это должно сработать.

Ваше Vue пыталось использовать переменную, которая не существует (из-за s), именно поэтому произошла эта ошибка.

5
задан Simon Woodside 14 January 2010 в 06:24
поделиться

5 ответов

Не совсем автоматизирован, но как модифицировать свой код, чтобы повторно бросить исключения, когда они назывались в тесте?

Возможно, что-то вроде этого:

def foo
  # do some stuff...
rescue
  raise if ENV["RAILS_ENV"] == "test"
  render :text => "Exception: #{$!}" # this could be any kind of custom render
end
9
ответ дан 14 December 2019 в 04:47
поделиться

Вы смотрели используя вызов assert_raise (exception1, exception2, ...) {block} , а затем распечатать исключение из блока?

0
ответ дан 14 December 2019 в 04:47
поделиться

Какой метод вы используете? В ActionController есть два метода восстановления.

У меня есть это в моем базовом контроллере:

def rescue_action_in_public(exception)
    response_code = response_code_for_rescue(exception)
    status = interpret_status(response_code)
    respond_to do |format|
        format.html { render_optional_error_file response_code}
        format.js { render :update, :status => status  do |page| page.redirect_to(:url => error_page_url(status)) end}
end

end

Это отображает только пользовательские ошибки в производственном режиме.

0
ответ дан 14 December 2019 в 04:47
поделиться

Вам не нужно отключать блокировку восстановления. Используйте метод assert_raise (предложенный Скоттом) и в блоке вызовите метод, от которого ожидается исключение.

Например:

def test_throws_exception
  assert_raise Exception do
    raise_if_true(true)
  end
end
-1
ответ дан 14 December 2019 в 04:47
поделиться

Я думаю, что проще всего проверить, был ли вызван правильный рендеринг - или что-то еще, отличное от обычного, неисключительного случая.

0
ответ дан 14 December 2019 в 04:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: