我了解unittest
Python模块。
我知道assertRaises()
类的TestCase
方法。
我想编写一个在不引发异常时成功的测试。
有任何提示吗?
答案 0 :(得分:24)
def runTest(self):
try:
doStuff()
except:
self.fail("Encountered an unexpected exception.")
更新:正如liw.fi所提到的,默认结果是成功,因此上面的示例是反模式。如果你想在失败之前做一些特别的事情,你应该只使用它。您还应该抓住可能的最具体的例外情况。
答案 1 :(得分:14)
测试运行器将捕获您未声明的所有异常。 因此:
doStuff()
self.assert_(True)
这应该可以正常工作。您可以省略self.assert_调用,因为它实际上没有做任何事情。我喜欢把它放在那里以证明我没有忘记断言。
答案 2 :(得分:6)
我将这种模式用于你提出的那种断言:
with self.assertRaises(Exception):
try:
doStuff()
except:
pass
else:
raise Exception
当doStuff()引发异常时,它将完全失败。