假设我有一个用 Ruby 编写的方法,我通过 Test::Unit 进行单元测试。此方法可以出于多种原因引发 SystemExit
,但唯一标识它在 Exception
中抛出它的原因。我知道我可以这样做来断言引发异常:
assert_raises(SystemExit) { boo() }
但这匹配 boo()
抛出 SystemExit
的所有情况。如何区分 boo()
执行 abort("reason 1")
和 abort("reason 2")
的情况?
最佳答案
只需用begin..rescue
捕获它即可。如果需要重复执行,请编写一个辅助方法。
begin
boo()
rescue SystemExit => e
assert_equal(e.message, "This message")
end
关于ruby - 通过 Test::Unit 查看异常消息是否与 Ruby 中的已知字符串匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8425742/