繁体   English   中英

如何在Easymock中模拟多个返回值

[英]How to mock multiple return values in Easymock

我是python新手,正在尝试模拟process.communicate方法,但是我不知道如何从模拟返回多个值。 我接近它的方式是

with patch.object(subprocess, 'Popen', new_callable=MagicMock) as process:
  process.communicate.return_value = [b'', b'']
  output, error = process.communicate()

我收到的错误消息是:

>       output, error = process.communicate()
E       ValueError: not enough values to unpack (expected 2, got 0)

有人可以指出我在做什么错吗,我尝试过使用方括号和不使用方括号将其返回。

process.communicate返回一个元组而不是一个列表,因此您需要更改的只是:

with patch.object(subprocess, 'Popen', new_callable=MagicMock) as process:
  process.communicate.return_value = (b'', b'')
  output, error = process.communicate()

通常,在Python中,当您返回一个元组时,它可以返回一个元组指针或解压缩为多个值。 欲了解更多信息,请访问此处 (首先在Google上)

很抱歉提供错误信息,但是我发现错误出在代码的某些不同部分,并且上面提到的语法在没有任何花括号的情况下也可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM