Щоб дати трохи надуманий приклад, скажімо, я хочу перевірити, що функція повертає два числа, і що перше менше, ніж друге:
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чи пропускати?
EDIT: зауважте, що в цій ситуації обидва тести здебільшого незалежні один від одного, кожен може бути запущений ізольовано, або вони можуть бути виконані у зворотному порядку, це не має значення. Тож жодне з цих колишніх питань
- Як слід перевірити функціональність функції, яка використовує в ній інші функції?
- Чи потрібно тестування, якщо я вже маю тест на інтеграцію?
- Як структурувати тести, коли один тест - це інший параметр тесту?
- Як керувати залежністю успіху між одиничними тестами
- це дублікат вищевказаного.
Aдзвонить Bі повертає один і той же результат, ви повинні перевірити і те, Aі B". Йдеться більше про те, що тести перекриваються, а не функції, що перевіряються. (Хоча це заплутано, як їх зараз називають).
lambda: type('', (), {'__len__': lambda self: 2})()передасть перше, а не друге.