python - sys.stdin 的模型?

标签 python unit-testing stdin mockups

假设,您想为这样的函数编写unittest:

def test_me(instream):
    out = ""
    for line in instream:
       out += foo(line)
    return out

通常这样使用:

test_me(sys.stdin)

现在,在您的 unittest 中,您不想使用 sys.stdin ,而是使用模仿 sys.stdin 的对象行为和该对象应该完全由您控制。这样您就可以按原样测试该函数,并且可以插入您喜欢的任何假输入。您需要创建什么样的对象才能做到这一点?

最佳答案

在本例中,instream 参数用作生成器;实现一个生成器就可以了。也许只需提供一个带有行列表的函数就可以了。

关于python - sys.stdin 的模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11118551/

相关文章:

python - 使用带有嵌套 while 循环的 readline 方法时出现问题 Python

python - SocketServer ThreadingMixIn server_thread 的用途

java - 跨平台比较文件内容

unit-testing - 如何在没有模拟的情况下记录/验证单元测试中的方法调用?

ios - 如何在单元测试中调用 web 服务作为 uiviewcontroller 的一部分?

javascript - Haskell 调用 Node.js 文件不起作用

c - 你如何检测 C 中的 ctrl+D?

python - 将变量值插入字符串

python - 使用 selenium webdriver 等待元素的属性更改值

c - 在 stdin 中使用 fflush() 是非法的吗?该怎么办?