假设您想为如下所示的函数编写unittest:
def test_me(instream):
out = ""
for line in instream:
out += foo(line)
return out通常是这样使用的:
test_me(sys.stdin)现在,在你的unittest中,你不想使用sys.stdin,而是一个模仿sys.stdin行为的对象,这个对象应该完全由你控制。这样你就可以按原样测试函数,你可以插入任何你喜欢的伪输入。要做到这一点,你需要创建什么样的对象呢?
发布于 2012-06-20 19:35:33
在本例中,instream参数用作生成器;因此实现生成器就可以了。可能只需要提供一个包含行列表的函数就可以了。
发布于 2012-06-20 19:40:26
尝试使用StringIO和/或cStringIO模块。
https://stackoverflow.com/questions/11118551
复制相似问题