你如何在Django中测试formset?

Vik*_*tor 6 django unit-testing 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.')
Run Code Online (Sandbox Code Playgroud)

当然我得到了一个错误

AttributeError:'ShareholderFormFormSet'对象没有属性'fields'

因为formset中有表单,而不是字段.....那么测试formset的正确方法是什么?

Fra*_*ant 2

这是一个功能测试(因为您浏览视图,如果保存模型,可能会请求模型等)。

对于表单来说,django-webtest 更容易使用;您不必担心这些细节: https: //pypi.python.org/pypi/django-webtest