查找异常类型

时间:2017-08-10 08:54:00

标签: python exception testing assertion

我创建了一个类(派生自Exception):

class InvalidFilterException(Exception):
      #some code here
      super().__init__(message)

现在,当我在此模块上运行测试时,使用unittest.Testcase,运行

assertRaises(Exception, InvalidFilterException, arg1, arg2)

给出错误:

AssertionError: Exception not raised by InvalidFilterException

有人可以告诉我,我应该将Exception替换为assertRaises中的第一个参数,以便此测试通过吗? 我也尝试使用InvalidFilterException作为参数,但也失败了,输出相同。

1 个答案:

答案 0 :(得分:0)

在你的情况下,你正在尝试InvalidFilterException,因为assertRaises的第二个参数是你想要测试的可调用的。

你需要使用你的例外...

assertRaises(InvalidFilterException, do_something, arg1, arg2)

with assertRaises(InvalidFilterException):
    do_something(arg1, arg2)

do_something是您需要测试的函数或可调用函数。