[英]assertEqual vs assertSetEqulal in unittest
python unittest.TestCase 中的 assertEquals 和 assertSetEqual 之间是否存在差异,用于断言集合或冻结集?
如果没有,为什么会有 assertSetEqual?
同样对于这种情况,我们可以使用 assertCountEqual 和 assertSequenceEqual!
.
.
.
self.assertEqual({1, 2, 3}, {1, 2, 3})
self.assertSetEqual({1, 2, 3}, {1, 2, 3})
.
.
.
特定于类型的调用在失败时会给出特定于类型的错误消息。 例如,对于一个集合,它将列出在每个集合中找到但在另一个集合中找不到的元素。
文档指出,如果两个参数的类型完全相同并且存在特定类型的测试,assertEqual 将调用特定类型的测试——因此,对于两个集合,assertEqual 将调用 assertSetEqual 并因此显示更有用的错误消息。 但是,如果一个 arg 是一个集合而另一个是 frozenset,它就不会这样做。 这可能不会经常出现,但这是您可以直接调用 assertSetEqual 的一种情况。
>>> TestCase().assertEqual({1, 2, 3}, frozenset((2, 1)))
Traceback (most recent call last):
...
AssertionError: {1, 2, 3} != frozenset({1, 2})
>>> TestCase().assertSetEqual({1, 2, 3}, frozenset((2, 1)))
Traceback (most recent call last):
...
AssertionError: Items in the first set but not the second:
3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.