我正在进行测试 - 我在 clean 方法中有一个带有大量逻辑的小表单。
我的测试是这样的:
class DependentFormTest(TestCase):
def test_dependent_form_birthdate_out_of_range(self):
form_data = {
'first_name': 'Bill',
'last_name': 'Robusin',
'birth_date': '10/12/1801',
'gender': 'Male',
'relationship': 'dependent',
'street_address_1': '123 Any lane',
'city': 'Billson',
'state': 'WA',
'zip': '50133',
}
form = DependentForm(data=form_data)
self.assertFalse(form.is_valid())
在我的 clean 方法中,我可以访问有关当前用户的一些信息。失败的片段如下所示:
user_benefit = Benefit.objects.get(user=self.user)
这一行是导致我的测试出错并出现以下错误的原因:
利益匹配查询不存在
这是真的,因为在测试中“用户”是“无”。
如何在我的测试中设置用户以便我可以测试此表单的有效性?
最佳答案
在您的测试 setUp()
方法中,您可以创建一个用户用于测试目的。然后重复使用它。
据我了解,您的用户来自请求。因此,您需要使用 django 测试客户端登录并将数据发布到您的表单中。
关于python - 使用用户对象在 Django 中测试表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46730824/