Python self.assertRaises
我有一个小代码如下,请帮助我如何正确地写这个。我想检查
1 2 3 4 | value = ({'av' : '123', 'user' : 'abc', 'version' : 'xyz'}) with self.assertRaises(IndexError, value[0]["ID"]): print"not an error" |
代码的问题在于
如果您希望使用基于上下文管理器的方法,我想您正在寻找这段代码片段,这对于需要同时计算语句或多个表达式非常有用:
1 2 | with self.assertRaises(IndexError): value[0]["ID"] |
或者,如果需要解析单个表达式(语句在lambda中不起作用),也可以这样做:
1 | self.assertRaises(IndexError, lambda: value[0]["ID"]) |
有关这方面的更多信息,请看一下这个问题,因为它似乎解决了您关于如何正确使用
另外,请注意,在您的情况下,
此外,在单元测试中,通常不需要输出与断言状态相关的任何内容——如果断言通过或失败,则单元测试框架的工作就是形成适当的报告。但是,如果您愿意打印它,只要在您的断言之后包含
如果你不坚持
1 2 | value = ({'av' : '123', 'user' : 'abc', 'version' : 'xyz'}) self.assertIn('ID', value) |