Python中的模拟stdout

2024-10-03 00:22:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python单元测试的新手,尤其是Mock。我该如何模仿一个可以用来做以下事情的对象?我只需要一个不会使循环崩溃的对象,以便完成测试。在

for ln in theMock.stdout.readlines()

我试着用

^{pr2}$

以及

Mock(stdout=Mock(spec=file, wraps=StringIO())

但是它说list对象没有属性stdout。在


Tags: 对象inforstdout单元测试事情mockfile
1条回答
网友
1楼 · 发布于 2024-10-03 00:22:01

这个怎么样?在

from mock import Mock

readlines = Mock(return_value=[])
stdout = Mock(readlines=readlines)
theMock = Mock(stdout=stdout)
print(theMock.stdout.readlines())

输出:

^{pr2}$

您的for循环将被跳过,因为readlines()将返回一个空列表。在

相关问题 更多 >