import unittest
def broken_function():
raise Exception('This is broken')
class MyTestCase(unittest.TestCase):
def test(self):
with self.assertRaises(Exception) as context:
broken_function()
self.assertTrue('This is broken' in context.exception)
if __name__ == '__main__':
unittest.main()
由于Python2.7,您可以使用上下文管理器获取抛出的实际异常对象的ID:
http://docs.python.org/dev/library/unittest.html#unittest.TestCase.assertRaises
在Python 3.5中,必须将
context.exception
包装在str
中,否则将得到TypeError
使用unittest模块中的^{} (或
TestCase.failUnlessRaises
),例如:我之前的答案中的代码可以简化为:
如果函数接受参数,只需将它们传递到assertRaises中,如下所示:
相关问题 更多 >
编程相关推荐