我做了一个简单的测试用例:
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的一个反向移植,你可以使用上面的代码让它工作。
N.B:我非常喜欢 unittest 的新功能(SkipTest、测试发现...),所以我打算尽可能多地使用 unittest2。我建议也这样做,因为在 python2.6 中,unittest 的功能远不止这些 <./>
https://stackoverflow.com/questions/6103825/