我应该如何在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
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)