我的 Python 单元测试代码如下所示
self.assertRaises(exc.UserError, module.function, args)
这基本上断言引发了 UserError 。但是,我找不到如何检查异常中的消息是否与我的正则表达式匹配。
我怎样才能做到这一点?(我不希望编写任何额外的代码,只利用 python unittest 模块功能)
我的 Python 单元测试代码如下所示
self.assertRaises(exc.UserError, module.function, args)
这基本上断言引发了 UserError 。但是,我找不到如何检查异常中的消息是否与我的正则表达式匹配。
我怎样才能做到这一点?(我不希望编写任何额外的代码,只利用 python unittest 模块功能)
class ExtendedTestCase(unittest.TestCase):
def assertRaisesWithMessage(self, msg, func, *args, **kwargs):
try:
func(*args, **kwargs)
self.assertFail()
except Exception as inst:
self.assertEqual(inst.message, msg)
标准的 unittest 模块没有提供这样的方法。如果您更频繁地使用它,您可以使用上面的代码并从 ExtendedTestCase 继承。
Python 似乎在 2.7.3 中具有相同的方法,该方法名为“assertRaisesRegexp”,因此我们不(也不应该)编写自己的包装器:)
http://docs.python.org/2/library/unittest.html#unittest.TestCase.assertRaisesRegexp