我有以下代码:如何assertRaises一个特定的异常
def foo(input):
if not input.startswith("prefix"):
raise Exception("input should start with prefix!")
process(input)
现在我想单元测试这个功能;当input
不是以"prefix"
开头时,它实际上可能会抛出异常。这里是我的unittest
代码:
def test_foo_invalud_type(self):
self.assertRaises(Exception, foo, 999)
与这个测试代码的问题是:它捕获了异常,但例外的是'int' object has no attribute 'startswith'
,而不是input should start with prefix!
。测试会通过,但这不是一个好的测试。我如何识别两个例外?
我认为我误解了这个问题至少两次,但我现在对此感到高兴...... – jonrsharpe
谢谢。我不得不承认我的问题是一个不好的描述。 – Suanmeiguo