标题几乎总结了它:我尝试使用 assertEqual 来测试一个返回生成器对象的函数,但结果是:
AssertionError: 生成器对象geneexpr> at 0x2e70c80> != (1,2,...)
除了迭代函数并为每个单独的输出运行 assertEqual 之外,是否有一种聪明的方法可以做到这一点?
标题几乎总结了它:我尝试使用 assertEqual 来测试一个返回生成器对象的函数,但结果是:
AssertionError: 生成器对象geneexpr> at 0x2e70c80> != (1,2,...)
除了迭代函数并为每个单独的输出运行 assertEqual 之外,是否有一种聪明的方法可以做到这一点?
assertEqual(tuple(generator_object), (1, 2, ...))
如果它是一个无限生成器,或者您n
出于某种原因只想查看第一个结果,您可以将其与itertools.islice
assertEqual(tuple(islice(generator_object, n)), (1, 2, ...))
next()
在生成器对象上使用。
assertEqual(next(generator_object), (1, 2, ...))