如果我有一个名为Enquiry
的模型,其属性为email
,我该如何检查使用无效的电子邮件创建查询会引发错误?
我试过这个
def test_email_is_valid(self):
self.assertRaises(ValidationError, Enquiry.objects.create(email="testtest.com"))
但是我得到了错误
TypeError:'查询'对象不可调用
我没有得到什么,是否有人知道测试电子邮件验证的正确方法?
答案 0 :(得分:4)
当您致电save()
或create()
时,Django不会自动验证对象。您可以通过调用full_clean
方法触发验证。
def test_email_is_valid(self):
enquiry = Enquiry(email="testtest.com")
self.assertRaises(ValidationError, enquiry.full_clean)
请注意,您不要在上面的代码中调用full_clean()
。您可能更喜欢上下文管理器方法:
def test_email_is_valid(self):
with self.assertRaises(ValidationError):
enquiry = Enquiry(email="testtest.com")
enquiry.full_clean()