gpt4 book ai didi

带参数的python模拟函数

转载 作者:行者123 更新时间:2023-11-28 21:48:26 25 4
gpt4 key购买 nike

我想模拟一个调用带有参数的外部函数的函数。我知道如何模拟一个函数,但我不能提供参数。我尝试使用@patch、side_effects,但没有成功。

def functionToTest(self, ip):
var1 = self.config.get(self.section, 'externalValue1')
var2 = self.config.get(self.section, 'externalValue2')
var3 = self.config.get(self.section, 'externalValue3')

if var1 == "xxx":
return False
if var2 == "yyy":
return False

[...]

在我的测试中我可以这样做:

    def test_functionToTest(self):
[...]
c.config = Mock()
c.config.get.return_value = 'xxx'

所以 var1、var2 和 var3 都采用“xxx”相同的值,但我不知道如何模拟每条指令并给出我想要的 var1、var2 和 var3 值

( python 版本 2.7.3)

最佳答案

使用side_effect将一系列返回值排队。

c.config = Mock()
c.config.get.side_effect = ['xxx', 'yyy', 'zzz']

第一次调用c.config.get,会返回'xxx';第二次,'yyy';第三次,'zzz'。 (如果第四次调用它,它会引发一个 StopIteration 错误。)

关于带参数的python模拟函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35364446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com