В тесте отдельно проверяют тип результата, его форму и значения. Для list используют isinstance(result, list), а если требуется именно встроенный тип — type(result) is list.
Как проверить тестовым сценарием, что функция возвращает ожидаемую структуру и тип list?
В тесте отдельно проверяют тип результата, его форму и значения. Для list используют isinstance(result, list), а если требуется именно встроенный тип — type(result) is list.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В тесте отдельно проверяют тип результата, его форму и значения. Для list используют isinstance(result, list), а если требуется именно встроенный тип — type(result) is list.
Условный pytest-тест для функции, которая по контракту возвращает записи с id:
def test_result_structure():
result = function_under_test()
assert isinstance(result, list)
assert all(isinstance(item, dict) for item in result)
assert all('id' in item for item in result)
assert result == [{'id': 1}, {'id': 2}]
Имя функции и ожидаемые записи здесь иллюстративны: их заменяют данными конкретного контракта. Добавьте отдельный сценарий пустого результата и ошибочного входа. Одной проверки all недостаточно, если список обязан быть непустым: для пустого списка она истинна.