我做了一个简单的测试用例:
def setUp(self): self.testListNone = None def testListSlicing(self): self.assertRaises(TypeError, self.testListNone[:1])
我期待测试通过,但我遇到了异常:
Traceback (most recent call last): self.assertRaises(TypeError, self.testListNone[:1]) TypeError: 'NoneType' object is unsubscriptable
我认为 assertRaises 会通过,因为会引发 TypeError 异常?
如果您使用的是 python2.7 或更高版本,则可以使用assertRaises的功能用作上下文管理器并执行以下操作:
with self.assertRaises(TypeError): self.testListNone[:1]
如果您正在使用 python2.6,除了到目前为止给定的方法之外,另一种方法是使用unittest2,它是 unittest 新功能到 python2.6 的后向端口,您可以使用上面的代码使其工作。
注意:我是 unittest 的新功能(SkipTest,测试发现......)的忠实粉丝,所以我打算尽可能多地使用 unittest2。我建议也这样做,因为在 python2.6 <.