Чтобы дать немного надуманный пример, скажем, я хочу проверить, что функция возвращает два числа, а первое меньше второго:
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})()
пройдет первое, но не второе.