我正在Django中创建一个应用程序,我有下一个问题:我想在Django中为一个视图编写一个测试,但是该视图从html接收一个表单,我不知道我怎么能模拟发送表单以测试该视图。
我的观点是下一个:
class EnsaioaBilatuViewTest(TestCase):
def test_ensaioa_bilatu_view(self):
self.client.login(username='admin', password='admin')
response = self.client.post('/url/', {'attr1':'2015-01-01', 'attr2':''})
self.assertEquals(response.status_code, 302)
self.assertEquals(response.context['value'], 0)
我得到的错误是下一个错误:
self.assertEquals(response.context['value'], 0)
eError: 'NoneType' object has no attribute '__getitem__'
它是如何发生的?
答案 0 :(得分:0)
要测试视图,请提供HTML表单发回的数据,然后在响应中断言:
response = self.client.post(reverse('select_self'),
{u'form-0-id':[u'1'],
u'form-0-username': [u'thomas6'],
u'form-0-class_choice': [u'1'],
u'form-1-id':[u'4'],
u'form-1-username': [u'thomas6'],
u'form-1-class_choice': [u'10'],
u'form-TOTAL_FORMS': [u'2'],
u'form-INITIAL_FORMS': [u'2'],
})
self.assertEqual(response.status_code, 302)