car*_*izo 5 python django django-models
当我的模型中未设置非空字段时,我试图使单元测试失败:
class Foo(models.Model):
email = models.EmailField(
unique=True,
null=False,
blank=False)
def testFoo(self):
try:
Foo.objects.create().save()
except:
self.fail("error!")
Run Code Online (Sandbox Code Playgroud)
但它永远不会失败。
当应用程序运行时,电子邮件格式和非空验证工作得很好,但我无法编写测试。
当然,我可以通过编程方式进行验证,但我不想重复自己。有任何想法吗?
好吧,你有几个问题,让我列举一下:
save是多余的。create已经保存了。创建对象不会触发诸如“这封电子邮件是否有效”之类的验证。如果您尝试传入,email=None它将因您的null=False字段参数而失败,但电子邮件的默认值是'',因此它不会在该级别失败。如果您想验证电子邮件是否有效,请执行以下操作:
def testFoo(self):
try:
a = Foo.objects.create()
a.clean_fields()
except:
self.fail("error!")
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
2167 次 |
| 最近记录: |