Единичное тестирование функции, возвращающей объект генератора
Название в значительной степени суммирует его: я попытался использовать assertEqual для проверки функции, которая возвращает объект-генератор, но это приводит к:
AssertionError: объект-генератор genexpr > в 0x2e70c80 > != (1,2,...)
Есть ли разумный способ сделать это, кроме повторения функции и запускать assertEqual для каждого отдельного выхода?
Ответы
Ответ 1
assertEqual(tuple(generator_object), (1, 2, ...))
если это бесконечный генератор, или вы просто хотите посмотреть на первые n
результаты по какой-то причине, вы можете комбинировать это с itertools.islice
assertEqual(tuple(islice(generator_object, n)), (1, 2, ...))
Ответ 2
Используйте next()
для объекта генератора.
assertEqual(next(generator_object), (1, 2, ...))