assertRaises()在一个引发多个异常的测试用例中

phy*_*ist 2 python unit-testing assertraises

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

assertRaises(RuntimeError, "error message")
assertRaises(Exception, "exception message")
Run Code Online (Sandbox Code Playgroud)

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

我怎么能写一个singel assertRaises语句来处理这两个.

可以想象,当只提到其中一个execptions时,单元测试用例失败.

Dee*_*ace 6

直接来自文档:

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

所以,你的代码应该是这样的

assertRaises((RuntimeError, IndexError), "error message")
Run Code Online (Sandbox Code Playgroud)