下面的测试是否应该断言抛出了异常?在我的电脑上它没有,我想知道这是否是预期的行为。
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
最佳答案
这是一种预期的行为。 assert_raise
不检查是否在脚本执行的某处引发了异常,它检查该 block 是否引发了给定类型的未捕获异常。
换句话说,它只有在您删除 rescue
语句时才有效。
关于ruby-on-rails - RAILS - assert_raise 检查异常的深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1901214/