gpt4 book ai didi

python - 如何让 python 的 MagicMock 在第一次调用时返回一个值并在第二次调用时引发异常?

转载 作者:行者123 更新时间:2023-11-28 22:24:19 24 4
gpt4 key购买 nike

我有以下使用模拟的 python 程序。

#!/usr/bin/env python 
import mock

def my_func1():
return "Hello"

my_func = mock.MagicMock()
my_func.return_value = "Goodbye"

print my_func()
print my_func()

输出:

Goodbye
Goodbye

一切正常。太好了。

但我希望模拟方法在第一次调用时返回 Goodbye 并在第二次调用时引发异常。我该怎么做??

最佳答案

正如 Sraw 所指出的,您可以使用 side_effect。我可能会使用生成器函数而不是引入全局函数:

import mock

def effect(*args, **kwargs):
yield "Goodbye"
while True:
yield Exception

my_func = mock.MagicMock()
my_func.side_effect = effect()

my_func() #Returns "Goodbye!'
my_func() #Raises exception
my_func() #Raises exception

显然您可能不想引发一个裸Exception,但我不确定您想要引发什么异常...

关于python - 如何让 python 的 MagicMock 在第一次调用时返回一个值并在第二次调用时引发异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46439733/

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