假设,您想为这样的函数编写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/