업데이트 양식 및 뷰를 단위 테스트하려고합니다. Django Crispy Forms를 Create와 Update Forms 모두에 사용하고 있습니다. UpdateForm은 CreateForm을 상속하고 제출 단추 텍스트를 약간 변경합니다. CreateView와 UpdateView는 매우 유사합니다. 모델, 템플릿 및 success_url이 동일합니다. 그들은 각각의 폼을 사용한다는 점이 다르며 CreateView는 django.views.generic.CreateView를 상속하고 UpdateView는 django.views.generic.edit.UpdateView를 상속받습니다.Django : 단위 테스트 방법 업데이트보기/양식
웹 사이트가 정상적으로 작동합니다. 문제없이 개체를 만들고 편집 할 수 있습니다. 그러나 아래 두 번째 테스트는 실패합니다. 내 UpdateForm을 어떻게 테스트합니까?
도움을 주시면 감사하겠습니다. 감사.
이 테스트를 통과 :
class CreateFormTest(TestCase):
def setUp(self):
self.valid_data = {
'x': 'foo',
'y': 'bar',
}
def test_create_form_valid(self):
""" Test CreateForm with valid data """
form = CreateForm(data=self.valid_data)
self.assertTrue(form.is_valid())
obj = form.save()
self.assertEqual(obj.x, self.valid_data['x'])
이 테스트는 실패
class UpdateFormTest(TestCase):
def setUp(self):
self.obj = Factories.create_obj() # Creates the object
def test_update_form_valid(self):
""" Test UpdateForm with valid data """
valid_data = model_to_dict(self.obj)
valid_data['x'] = 'new'
form = UpdateForm(valid_data)
self.assertTrue(form.is_valid())
case = form.save()
self.assertEqual(case.defendant, self.valid_data['defendant']
나는 당신이 찾고있는 것이'form = UpdateForm (instance = self.obj)'이다. – IanAuld
그 것이었다. 고맙습니다! 대답을 주시면 받아 들일 것입니다. – Eric