测试引发的异常
Testing for exceptions being raised
我是 ruby 的新手。尝试编写一个在引发异常时通过的测试,例如:
def network_data_unavailable
assert_raise StandardError, NetworkSim.sim(totalUse, 3, "five")
end
这些输入会引发 StandardError,但我的测试仍然失败。对我在这里遗漏的内容有帮助吗?
首先,我认为你要找的方法是assert_raises
,而不是assert_raise
。然后你需要正确调用它 by giving it a block:
#assert_raises(*exp) ⇒ Object
Fails unless the block raises one of exp
. Returns the exception matched so you can check the message, attributes, etc.
[...]
assert_raises(CustomError) { method_with_custom_error }
您想说:
assert_raises StandardError do
NetworkSim.sim(totalUse, 3, "five")
end
以便 assert_raises
可以在设置异常处理后调用该块。按照你调用它的方式,NetworkSim.sim
将在构建 assert_raises
的参数列表时被调用,并且在 assert_raises
可以做任何事情来捕获它之前将引发异常。
我是 ruby 的新手。尝试编写一个在引发异常时通过的测试,例如:
def network_data_unavailable
assert_raise StandardError, NetworkSim.sim(totalUse, 3, "five")
end
这些输入会引发 StandardError,但我的测试仍然失败。对我在这里遗漏的内容有帮助吗?
首先,我认为你要找的方法是assert_raises
,而不是assert_raise
。然后你需要正确调用它 by giving it a block:
#assert_raises(*exp) ⇒ Object
Fails unless the block raises one of
exp
. Returns the exception matched so you can check the message, attributes, etc.
[...]assert_raises(CustomError) { method_with_custom_error }
您想说:
assert_raises StandardError do
NetworkSim.sim(totalUse, 3, "five")
end
以便 assert_raises
可以在设置异常处理后调用该块。按照你调用它的方式,NetworkSim.sim
将在构建 assert_raises
的参数列表时被调用,并且在 assert_raises
可以做任何事情来捕获它之前将引发异常。