2

下面的测试是否应该断言抛出异常?在我的电脑上它没有,我想知道这是否是预期的行为。

   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
4

1 回答 1

7

这是一种预期的行为。assert_raise不检查是否在脚本执行的某处引发异常,它检查块是否引发给定类型的未捕获异常。

换句话说,它只有在您删除该rescue语句时才有效。

于 2009-12-14T14:28:31.410 回答