python - 对返回生成器对象的函数进行单元测试

标签 python

标题几乎概括了它:我尝试使用 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, ...))

关于python - 对返回生成器对象的函数进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12775794/

相关文章:

javascript - 减慢 Django Web 应用程序中 Vue.js 更新方法中的请求速率

python - 在 Socket Python 上发送图片

python - 为什么结果总是在 2.87 左右

Python3 字典值被覆盖

python - 使用 Django 预加载 html 电子邮件模板的智能方法

python - 为什么 CPython 不将文字结果存储为代码对象的常量?

python - whoosh 是否要求所有字符串都是 unicode?

python - 在 Flask 中禁用缓存

Python - 提取最里面的列表

python - nltk PlaintextCorpusReader 发送和参数函数不起作用