假设我有一个测试视图的单元测试。该视图需要表单进行一些处理。我的单元测试看起来像这样:
class ViewTests(TestCase):
def setUp(self):
self.factory = RequestFactory()
def test_login_view_post(self):
# require form object to pass it in post function
response = self.client.post(reverse('login'))
self.assertContains(response, "Your username and password didn't match", status_code=200)
有人可以告诉我如何在post函数中传递表单对象?
感谢。
答案 0 :(得分:2)
您实际上没有在帖子中传递表单对象,您传递表单数据就像提交表单一样(这是您正在模拟的)
post_data = {
"username": "foo",
"password": "bar"
}
response = self.client.post(reverse('login'), data=post_data)
或者您可以简单地将表单包含在另一个测试中,并使用数据对其进行实例化以测试其有效性。
def test_form(self):
data = {
"username": "foo",
"password": "bar"
}
form = LoginForm(data)
self.assertFalse(form.is_valid())