0

我在 Member 模型的 email 字段上设置了一个独特的约束。现在在编写单元测试时,我的测试由于过期唯一约束而失败。

def setUp(self):
    self.car_provider = mommy.make(Member, username="car_provider")
    self.car_provider.set_password("12345678")
    self.car_provider.save()

    self.applicant = mommy.make(Member, username="applicant")
    self.applicant.set_password("12345678")
    self.applicant.save()

我收到以下错误:“django.db.utils.IntegrityError:重复键值违反唯一约束“account_member_email_a727987b_uniq”详细信息:键(电子邮件)=()已经存在。”

4

1 回答 1

0

如果您设置email为唯一字段,您实际上必须对该案例进行测试并以某种方式处理该异常。

但是要让这个测试运行,你应该email在每次mommy.make()调用中为字段提供一个明确的值。或者您可以使用带有_fill_optional选项的随机生成的值填充它。

喜欢:

self.car_provider = mommy.make(Member, username="car_provider", _fill_optional=['email'])
于 2019-08-18T10:16:18.117 回答