举一个稍微做作的例子,假设我要测试一个函数返回两个数字,并且第一个小于第二个:
def test_length():
result = my_function()
assert len(result) == 2
def test_order()
a, b = my_function()
assert a < b
在这里,如果test_length
失败,那么test_order
也会失败。编写test_length
或跳过是一种最佳实践吗?
编辑:请注意,在这种情况下,两个测试大多彼此独立,每个测试可以独立运行,也可以以相反的顺序运行,这无关紧要。所以这些以前的问题都没有
与上述内容重复。
A
调用B
并返回相同结果的函数,则应同时测试A
和B
”。这更多是关于测试是重叠的,而不是测试中的功能。(尽管由于它们当前被命名而令人困惑)。
lambda: type('', (), {'__len__': lambda self: 2})()
将传递第一个,但不会传递第二个。