标题几乎总结起来的函数:我尝试使用assertEqual便来测试返回一个生成器对象的功能,但结果:单元测试,它返回一个发电机对象
AssertionError: generator object genexpr> at 0x2e70c80> != (1,2,...)
是否有除了迭代函数并为每个单独的输出运行assertEqual之外,这种方法是否巧妙?
标题几乎总结起来的函数:我尝试使用assertEqual便来测试返回一个生成器对象的功能,但结果:单元测试,它返回一个发电机对象
AssertionError: generator object genexpr> at 0x2e70c80> != (1,2,...)
是否有除了迭代函数并为每个单独的输出运行assertEqual之外,这种方法是否巧妙?
assertEqual(tuple(generator_object), (1, 2, ...))
,如果它是一个无限生成,或者你只是想看看第一n
结果由于某种原因,你可以用itertools.islice
assertEqual(tuple(islice(generator_object, n)), (1, 2, ...))
发电机对象使用next()
combint这一点。
assertEqual(next(generator_object), (1, 2, ...))
这就是我喜欢Python的东西,总是有一种更简单(更干净)的方式来做事情。谢谢! –