我有像这样的django视图
# 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视图是API的一部分,因此请求和响应都在json
中我如何:
编辑:
我使用的数据库是Cassandra,所以我不能使用django.db
答案 0 :(得分:4)
您可以使用@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
。
答案 1 :(得分:2)