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