gpt4 book ai didi

python - Monkey 修补模块中的函数以进行单元测试

转载 作者:太空狗 更新时间:2023-10-30 00:21:40 27 4
gpt4 key购买 nike

我在调用从另一个模块导入的另一个方法的模块中有以下方法:

def imported_function():
do_unnecessary_things_for_unittest()

实际需要测试的方法,导入并使用上面的函数:

from somewhere import imported_function

def function_to_be_tested():
imported_function()
do_something_more()
return 42

imported_function内部的调用和相关计算并不重要,也不是我要测试的,所以我只想跳过它们,测试实际的函数function_to_be_tested .

因此,我尝试在测试方法中修补名为某处的模块,但没有成功。

def test_function_to_be_tested(self):
import somewhere
somewhere.__dict__['imported_function'] = lambda : True

问题是,我如何在测试时猴子修补一个模块的方法,这样它就不会在测试阶段被调用?

最佳答案

我认为最好使用 Mock Library

所以你可以这样做:

from somewhere import imported_function

@patch(imported_function)
def test_function_to_be_tested(self, imported_function):
imported_function.return_value = True
#Your test

我认为对于单元测试,它比 monkey patch 更好。

关于python - Monkey 修补模块中的函数以进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12210910/

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