0

我有一个基于 padrinorb 的应用程序,并且我正在使用 shoulda 测试库。有一种方法我需要测试抛出异常。我试图找到相同的文档,但找不到任何东西。

这是我要测试的示例代码

def some_method(param)
    raise APIException.new('Exception) if param == 2
end

我应该如何测试 some_method 在传递参数 2 时抛出异常。

4

1 回答 1

3
expect{ some_method(params) }.to raise_error(APIException)

如果您使用 TestUnit 这应该可以工作(来源

assert_raises(APIException) { some_method(params) }

要测试异常消息,请使用以下命令:

exception = assert_raises(Exception) { whatever.merge }
assert_equal( "message", exception.message )
于 2013-09-19T10:03:05.773 回答