如何模拟easymock中的多个返回值



我是一个python newbie,并且正在尝试模拟过程。交流方法,但我不知道如何从模拟中返回多个值。我接近它的方式

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上)

对不起,对错误的信息感到抱歉,但是我发现该错误在代码的某些部分中,上述语法在没有任何类型的括号的情况下正常工作。<<<<<<<<

相关内容

  • 没有找到相关文章

最新更新