2024-04-19 03:02:31 发布
网友
如果在unittest.TestCase中有断言,如下所示:
self.assertTrue( person.age == 42, "age incorrect")
当失败时,它会给出“年龄不正确”的消息。我还想看到的是期望值和实际值。做这个最好的方法是什么?这是unittest能做的吗?
编辑 我想看看这样的东西:
“年龄不正确:期望值42实际值39”
见:assertEqual
self.assertEqual(person.age, 42, 'age incorrect')
或者使用默认消息(回答评论):
self.assertEqual(person.age, 42)
您应该使用解决此问题的方法,例如:
self.assertEqual(person.age, 42, 'age incorrect: expected value {0} actual value {1}'.format(42, person.age))
但我认为不提供“msg”参数是最好的选择,因为它会生成文本:
first != equal
大多数用于运行测试的(*)工具还直接显示哪一行失败,因此您应该能够理解哪一个测试失败以及为什么失败,而无需使用额外的消息。
(*)读“全部”。
您可以将longMessage属性设置为True
longMessage
True
expected_age = 42 actual_age = person.age # 39 self.longMessage = True self.assertEqual(expected_age, actual_age, 'age incorrect')
你会得到这样的东西:
AssertionError: 42 != 39 : age incorrect
引用:https://docs.python.org/2/library/unittest.html#unittest.TestCase.longMessage
见:assertEqual
或者使用默认消息(回答评论):
您应该使用解决此问题的方法,例如:
但我认为不提供“msg”参数是最好的选择,因为它会生成文本:
大多数用于运行测试的(*)工具还直接显示哪一行失败,因此您应该能够理解哪一个测试失败以及为什么失败,而无需使用额外的消息。
(*)读“全部”。
您可以将
longMessage
属性设置为True
你会得到这样的东西:
引用:https://docs.python.org/2/library/unittest.html#unittest.TestCase.longMessage
相关问题 更多 >
编程相关推荐