单元测试八:assertRaises

assertRaises(exc, fun, *args, **kwds):检查fun(*args, **kwds) raises exc

 

assertRaises(exception, callable, *args, **kwds)

assertRaises(exception)

当可调用的任何位置或关键字参数被调用时,该异常将会被调用,这些参数也被传递给assertRaises()。

如果异常被抛出,测试通过,如果出现另一个异常,或者不抛出异常,则会出现错误。

为了捕获任何一组异常,包含异常类的tuple可以作为异常传递。

如果只给了异常参数,则返回上下文处理器,这样测试中的代码就可以write inline(内联)而不是作为函数来写。

with self.assertRaises(SomeException):
    do_something()

上下文管理器将在异常属性中存储捕获的异常对象。如果目的是对所提出的的异常进行额外的检查,这就很有用了:

with self.assertRaises(SomeException) as cm:
    do_something()

the_exception = cm.exception
self.assertEqual(the_exception.error_code, 3)

 

posted on 2018-08-28 10:39  myworldworld  阅读(246)  评论(0)    收藏  举报

导航