我試圖測試我的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