我试图测试我的Django应用程序,它具有在其自己的模块中实例化的代理API。Django模块变量的测试模拟实例
api.py
class ProxyApi(object):
def __init__(self, server_info):
pass
def validate_login(self, credentials):
# call to real api here
api = ProxyAPi()
middlewares.py
from mymodule.api import api
class MyMiddleware(MiddlewareMixin):
def process_request(self, request):
if api.validate_login():
# do something with proxy api
views.py
from mymodule.api import api
class TaskView(LoginRequiredMixin, FormView):
def get(self, request):
if api.validate_login():
# do something with proxy api
tests.py
class InputTasksViewTest(TestCase):
@mock.patch('mymodule.api.ProxyAPi')
def test_add(self, mock_api):
mock_api.validate_login.return_value = True
response = self.client.get(reverse('task'))
原来validate_login
仍称。
我想知道如何处理ProxyApi的实例化,同时仍保留模拟容量。
对不起,我不明白你的答案,这个问题是关于嘲讽,我的中间件和我的看法很好,我只需要嘲笑我的ProxyApi对象 – SebCorbin