Тестирование сообщения об исключении для ActionController :: BadRequest - PullRequest
0 голосов
/ 13 января 2020

Я пытаюсь проверить контроллер, который вызывает исключение ActionController::BadRequest при различных сценариях ios. Каждый сценарий предоставляет конкретное c сообщение в журнал.

Для проверки я получаю проходной тест, если я напишу:

test "should raise exception due to missing Data A" do
  post comment_path
  assert_response :bad_request
end

Однако, :bad_request может быть из-за много вещей. Я хотел бы проверить значение сообщения об исключении - это то, что ожидается. Есть ли способ получить к нему доступ?

Если я попытаюсь переписать тест следующим образом, результат будет следующим: ActionController :: BadRequest ожидается, но ничего не получено :

test "should raise exception due to missing Data A" do
  exception = assert_raise ActionController::BadRequest do
    post comment_path
  end
  assert_equal 'Missing Data A', exception.message
end

Я не понимаю, почему говорится, что «ничего не было поднято». В контроллере вызов буквально:

raise(ActionController::BadRequest.new(), "Missing Data A")

Есть ли способ проверить, является ли сообщение об исключении ожидаемым?

1 Ответ

0 голосов
/ 13 января 2020

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

test "should raise exception due to missing Data A" do
  post comment_path
  assert_response :bad_request
  assert response.body.include?('Missing Data A')
end
...