gpt4 book ai didi

python - django UnitTest Case(模拟)中的假子函数

转载 作者:太空宇宙 更新时间:2023-11-03 11:53:48 24 4
gpt4 key购买 nike

def func_b(**kwargs):
return something


def func_a(request,*args,**kwargs):
//do something
b = func_b(**kwargs)
//do something
return something

我正在为 func_a 编写 UnitTest,但我想在 django 中使用模拟或任何类似于模拟的方式伪造 func_b 的输出。简单地说,我只想伪造 func_b 的输出,并且总是想在测试用例中从 func_b 返回一些静态值。有什么办法吗?

最佳答案

您应该使用mock.patch 并指定return_value。这是一个示例,我们将 func_b() 的返回值即时修补为 Fake value:

from mock import patch
import unittest


def func_b():
return "Real value"


def func_a():
return "The result of func_b is '%s'" % func_b()


class MyTestCase(unittest.TestCase):
def test_fake_value(self):
with patch('test.func_b', return_value="Fake value") as mock_function:
self.assertEqual(func_a(), "The result of func_b is 'Fake value'")

更新:

with patch.object(module_name, 'func_b') as mock_function:
mock_function.return_value = "Fake value"
self.assertEqual(func_a(), "The result of func_b is 'Fake value'")

关于python - django UnitTest Case(模拟)中的假子函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18944856/

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