pythonunittest:如何在异常中测试参数?

2024-10-01 17:24:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用unittest测试异常,例如:

self.assertRaises(UnrecognizedAirportError, func, arg1, arg2)

我的代码增加了:

^{pr2}$

效果很好。在

如何测试异常中的参数是我期望的?在

我想以某种方式断言capturedException.argument == 'From'。在

我希望这是足够清楚的-提前谢谢!在

塔尔。在


Tags: 代码self参数方式断言unittestargumentfunc
2条回答

像这样。在

>>> try:
...     raise UnrecognizedAirportError("func","arg1","arg2")
... except UnrecognizedAirportError, e:
...     print e.args
...
('func', 'arg1', 'arg2')
>>>

如果您只是子类Exception,那么参数就在args中。在

http://docs.python.org/library/exceptions.html#module-exceptions

^{bq}$

编辑更大的示例。在

^{pr2}$

assertRaises有点简单,不允许您测试所引发异常的详细信息,而不仅仅是属于指定类的异常。对于更细粒度的异常测试,您需要使用一个try/except/else块“自己滚”(您可以在添加到您自己的unittest测试用例的泛型子类的def assertDetailedRaises方法中一次性完成,然后让所有测试用例继承您的子类,而不是unittest的子类)。在

相关问题 更多 >

    热门问题