以下测试是否应该抛出异常?在我的电脑上它没有,我想知道这是否是预期的行为。
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
答案 0 :(得分:7)
这是一种预期的行为。 assert_raise
不检查是否在脚本执行中的某处引发了异常,它检查该块是否引发了给定类型的未捕获异常。
换句话说,仅当您删除rescue
语句时,它才有效。