Python - test that succeeds when exception is not raised
我知道
我知道
我想编写一个在未引发异常时成功的测试。
有什么提示吗?
1 2 3 4 5 | def runTest(self): try: doStuff() except: self.fail("Encountered an unexpected exception.") |
更新:正如liw.fi所提到的,默认结果是成功的,所以上面的示例是反模式的。如果你想在失败之前做一些特殊的事情,你应该使用它。您还应该捕获可能的最具体的异常。
测试运行程序将捕获所有未断言的异常。因此:
1 2 | doStuff() self.assert_(True) |
这应该很管用。你可以省去self.assert调用,因为它实际上不起任何作用。我喜欢把它放在那里,证明我没有忘记一个断言。
我使用这种模式来表示您所要求的断言:
1 2 3 4 5 6 7 | with self.assertRaises(Exception): try: doStuff() except: pass else: raise Exception |
当dostuf()引发异常时,它将完全失败。