반응형
Django에서 Forms에 대한 테스트를 어떻게 작성해야합니까?
테스트를 작성할 때 Django의 뷰에 대한 요청을 시뮬레이션하고 싶습니다. 이것은 주로 양식을 테스트하기위한 것입니다. 다음은 간단한 테스트 요청의 스 니펫입니다.
from django.tests import TestCase
class MyTests(TestCase):
def test_forms(self):
response = self.client.post("/my/form/", {'something':'something'})
self.assertEqual(response.status_code, 200) # we get our page back with an error
페이지는 양식 오류 여부에 관계없이 항상 200의 응답을 반환합니다. 내 양식이 실패하고 특정 필드 ( soemthing
)에 오류가 있는지 어떻게 확인할 수 있습니까?
폼을 테스트하고 싶다면 폼이 렌더링되는 뷰가 아니라 폼만 테스트해야한다고 생각합니다. 아이디어를 얻는 예 :
from django.test import TestCase
from myapp.forms import MyForm
class MyTests(TestCase):
def test_forms(self):
form_data = {'something': 'something'}
form = MyForm(data=form_data)
self.assertTrue(form.is_valid())
... # other tests relating forms, for example checking the form data
from django.tests import TestCase
class MyTests(TestCase):
def test_forms(self):
response = self.client.post("/my/form/", {'something':'something'})
self.assertFormError(response, 'form', 'something', 'This field is required.')
여기서 "form"은 양식의 컨텍스트 변수 이름이고 "something"은 필드 이름이며 "This field is required"입니다. 예상 된 유효성 검사 오류의 정확한 텍스트입니다.
원래 2011 년 답변은
self.assertContains(response, "Invalid message here", 1, 200)
하지만 지금 (2018) 에 적용 가능한 주장이 많이 있습니다 .
- assertRaisesMessage
- assertFieldOutput
- assertFormError
- assertFormsetError
선택해라.
참고 URL : https://stackoverflow.com/questions/7304248/how-should-i-write-tests-for-forms-in-django
반응형
'program tip' 카테고리의 다른 글
JQuery를 사용하여 그룹의 라디오 버튼이 확인되지 않았는지 확인 (0) | 2020.08.21 |
---|---|
Notification.Builder를 정확히 사용하는 방법 (0) | 2020.08.21 |
Swift에서 UIButton 이미지를 변경하는 방법 (0) | 2020.08.21 |
Django : DB에서 객체를 얻거나 일치하는 것이 없으면 'None' (0) | 2020.08.21 |
첫 글자를 대문자로 표기하십시오. (0) | 2020.08.21 |