好的,所以我需要单元测试一个视图,在视图中更精确的形式。所以我创建了这样一个单元测试。你如何在Django中测试formset?
class ViewTest(TestCase):
fixtures = ['fixture.json']
def setUp(self):
self.client = Client()
def test_company_create(self):
post_data = {
'form-0-user': '',
'form-0-share': '',
'form-TOTAL_FORMS': 1,
'form-INITIAL_FORMS': 0,
'form-MAX_NUM_FORMS': 10
}
resp = self.client.post('/company/create/', post_data)
self.assertFormError (resp, 'shareholder_formset', 'share', 'This field is required.')
self.assertFormError (resp, 'shareholder_formset', 'user', 'This field is required.')
Ofcourse我回来一个错误
AttributeError: 'ShareholderFormFormSet' object has no attribute 'fields'
因为表单集有它的形式,而不是场.....那么什么是测试一个formset正确的方法是什么?
看看类似的问题:http://stackoverflow.com/questions/1630754/django-formset-unit-test。 – alecxe 2013-05-14 14:32:01
@alecxe这个问题仅仅是在类似于formset和unit-testing的意义上相似...... @Viktor只是测试'ShareholderForm'呢?它看起来就是你正在试图用你的断言来做的...... – Ngenator 2013-05-14 14:33:17
你既在这个“单元”测试中测试视图和表单。没有必要做POST来测试表单。请参阅[在Django#2中测试指南]中的“测试表单”部分(http://toastdriven.com/blog/2011/apr/17/guide-to-testing-in-django-2/) – gertvdijk 2013-05-14 14:39:06