3

是否可以将 assertRaises 与多种类型的异常一起使用。就像是

assertRaises(RuntimeError, "error message")
assertRaises(Exception, "exception message")

这两个错误都发生在我的代码中,在不同的地方使用相同的调用。

我如何编写一个单独的 assertRaises 语句来处理两者。

正如您可以想象的那样,当仅提及其中一个异常时,单元测试用例会失败。

4

1 回答 1

7

直接来自文档

测试调用 callable 时是否引发异常,其中任何位置或关键字参数也传递给 assertRaises()。如果引发异常,则测试通过,如果引发另一个异常则为错误,如果未引发异常,则测试失败。要捕获任何一组异常,可以将包含异常类的元组作为异常传递。

所以,你的代码应该看起来像

assertRaises((RuntimeError, IndexError), "error message")
于 2018-09-17T20:21:08.783 回答