python - 如何测试打印语句?

标签 python unit-testing stdout

你想为这样的函数编写 unittest-cases:

def test_me(a):
    for b in c:
        print do_something(a,b)

起初我想只是将 do_something 的输出收集在一个字符串中,然后将其返回,以一起打印和测试整个输出。但这并不总是很方便,因为这样的循环可能会导致您的缓冲区字符串变得非常大,具体取决于具体情况。那么,当输出被打印并且没有返回时,你可以做些什么来测试输出呢?

最佳答案

print打印到 sys.stdout ,如果您愿意,您可以将其重新分配给您自己的对象。您的对象唯一需要的是一个 write 函数,它接受一个字符串参数。

从 Python 2.6 开始,您还可以通过将 from __future__ import print_function 添加到脚本顶部,将 print 更改为函数而不是语言结构。这样你就可以用你自己的函数覆盖 print

关于python - 如何测试打印语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11122582/

相关文章:

python - 验证 json 中指定的 python 正则表达式标志

unit-testing - Qt单元测试中使用qDebug

python - PIL 使用转义序列在图像上写入文本

Python:检查上传的文件是否为jpg

php - IoC容器+单元测试

go - 在 Golang 中渲染页面后如何发送 websocket 数据?

c++ - 在 C++ 中读取另一个进程的标准输出

c - fwrite 不打印任何东西到标准输出

python - 如何将嵌套列表转换为包含 python 中的字符串的列表?

javascript - 如何向 Jest Expect 添加自定义消息?