gpt4 book ai didi

python - 单元测试 Python : Mocking function calls inside function

转载 作者:太空狗 更新时间:2023-10-30 01:00:48 24 4
gpt4 key购买 nike

我有一个这样的django View

# Django view

from some_module import f2
def f1(request, version):
# some code

f2(**kargs)

# more code
return HTTPResponse(response)

函数f2在另一个模块中

# some_module
def f2(**kargs):
# some code

Django View 是 API 的一部分,因此请求和响应都在 json 中

我该怎么做:

  1. 在模拟请求的同时为此函数编写单元测试
  2. mock f2,这是一个基于数据库的函数,完全避免数据库连接

编辑:

我用的数据库是Cassandra,所以不能用django.db

最佳答案

您可以使用 @mock.patch 装饰器在您的单元测试中模拟 f2() 方法。

import mock
import some_module
from django.test import TestCase

def mocked_f2(**kargs):
return 'Hey'

class YourTestCase(TestCase):

@mock.patch('some_module.f2', side_effect=mocked_f2)
def test_case(self):
print some_module.f2() # will print: 'Hey'

在这种情况下,每次您在代码中调用 f2() 时,都会调用 mocked_f2

关于python - 单元测试 Python : Mocking function calls inside function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32116085/

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