2
單元測試視圖時,我似乎無法模擬表單的行爲。單元測試中的嘲諷表單
我的表單是一個簡單的ModelForm,位於profiles.forms
。該視圖(再次)是一個簡單的視圖,用於檢查表單是否有效,然後重定向。
views.py
from django.http import HttpResponseRedirect
from django.shortcuts import render
from django.urls import reverse
from profiles.forms import ProfileForm
def home(request):
form = ProfileForm()
if request.method == 'POST':
form = ProfileForm(request.POST)
if form.is_valid():
profile = form.save()
return HttpResponseRedirect(reverse("thanks"))
我的測試是這樣的:
class TestViewHomePost(TestCase):
def setUp(self):
self.factory = RequestFactory()
def test_form(self):
with mock.patch('profiles.views.ProfileForm') as mock_profile_form:
mock_profile_form.is_valid.return_value = True
request = self.factory.post(reverse("home"), data={})
response = home(request)
logger.debug(mock_profile_form.is_valid.call_count) # "0"
is_valid
不會被調用的模擬,這意味着ProfileForm未打補丁。
我在哪裏犯了一個錯誤?