【发布时间】:2014-08-23 22:31:26
【问题描述】:
我是 Python 单元测试的新手,尤其是 Mock。我将如何模拟可以执行以下操作的对象?我只需要一个不会使循环崩溃的对象即可完成测试。
for ln in theMock.stdout.readlines()
我尝试通过这样做来创建一个模拟
Mock(stdout=Mock(readlines= Lambda: []))
和
Mock(stdout=Mock(spec=file, wraps=StringIO())
但它说列表对象没有属性stdout。
【问题讨论】:
-
你的意思是stdin.readlines吗?
-
不,stdout.readlines() 是正确的。
-
为什么要用try to read stdout?您想知道向标准输出写入了什么吗?
-
不是我的代码,我只是测试一下。但是,是的,这就是它应该做的。
标签: python unit-testing mocking stringio