【发布时间】:2018-09-27 05:35:15
【问题描述】:
我有 django 1.11 应用程序,我想为我的解决方案编写单元测试。
我想测试注册日期功能。
模型.py:
class User(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
registration_date = models.DateTimeField(auto_now_add=True)
def get_registration_date(self):
return self.registration_date
我也将 django-boy 用于模型工厂: 工厂.py
class UserFactory(factory.DjangoModelFactory):
class Meta:
model = models.User
first_name = 'This is first name'
last_name = 'This is last name'
registration_date = timezone.now()
test.py
def test_get_registration_date(self):
user = factories.UserFactory.create()
self.assertEqual(user.get_registration_date(), timezone.now())
问题是我收到了AssertionError:
AssertionError: datetime.datetime(2018, 4, 17, 9, 39, 36, 707927, tzinfo=<UTC>) != datetime.datetime(2018, 4, 17, 9, 39, 36, 708069, tzinfo=<UTC>)
【问题讨论】:
-
为什么不在创建时给出一个虚拟的具体时间以进行简化
标签: python django unit-testing datetime factory-boy