我应该如何在Django中编写testing表单?

我想在编写testing时模拟Django中对我的视图的请求。 这主要是为了testing表格。 这是一个简单的testing请求的片段:

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 )有错误?

我想如果你只是想testing表单,那么你应该testing表单而不是表单的视图。 例子得到一个想法:

 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 

https://docs.djangoproject.com/en/stable/topics/testing/tools/#django.test.SimpleTestCase.assertFormError

 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”是表单的上下文variables名称,“something”是字段名称,“此字段是必需的”。 是预期validation错误的确切文本。

 self.assertContains(response, "Invalid message here", 1, 200)