1

我想在 django 中创建一个单元测试来测试表单,同时将一些初始数据传递给它,看看它是有效的还是无效的。问题是框​​架不允许您将初始值设置为密码字段,除了子类化(我想避免......仅用于密码字段)之外还有其他方法吗?我的代码如下。

def test_new_user_joining(self):
    form_data = {
        'full_name': #invalid value,
        'email': 'test_email@gmail.com',
        'password': 'password'
    }
    form = SignupForm(initial=form_data)
    if form.is_valid():
        self.fail('Form should not be valid')

    form_data['full_name'] = # valid value
    form = SignupForm(initial=form_data)
    if not form.is_valid():
        self.fail('Form should be valid')
4

1 回答 1

3

在这种情况下,您只需要使用数据arg 而不是initial

def test_new_user_joining(self):
    form_data = {
        'full_name': #invalid value,
        'email': 'test_email@gmail.com',
        'password': 'password'
    }
    form = SignupForm(data=form_data)
    if form.is_valid():
        self.fail('Form should not be valid')

    form_data['full_name'] = # valid value
    form = SignupForm(data=form_data)
    if not form.is_valid():
        self.fail('Form should be valid')
于 2013-06-19T16:16:59.847 回答