RAILS - насколько глубоко assert_raise проверяет исключение - PullRequest
2 голосов
/ 14 декабря 2009

Должен ли следующий тест утверждать исключение? На моем компьютере это не так, и я хочу знать, является ли это ожидаемым поведением.

   def a
     raise RuntimeError
   end

   def b
     begin
       a
     rescue RuntimeError
       puts "bummer"
     end
   end

   test "assert this" do
     assert_raises RuntimeError do
       b
     end
   end

1 Ответ

7 голосов
/ 14 декабря 2009

Это намеченное поведение. assert_raise не проверяет, было ли вызвано исключение где-то при выполнении скрипта, он проверяет, вызывает ли блок необработанное исключение данного типа.

Другими словами, это работает, только если вы удалите оператор rescue.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...