所以我正在学习如何在 Django 中练习 TDD,但遇到了一些小麻烦。我创建了一个自定义用户对象,它以一对一的关系链接到经过身份验证的系统用户。我有以下测试,它练习了我的自定义用户类的一部分:
def test_creating_a_user_with_attributes(self):
myuser = Myuser.objects.create_user('Gary', email='me@email.com')
current_time = now()
myuser.birthday = current_time
myuser.save()
first_user = Myuser.objects.all()[0]
self.assertEqual(first_user.birthday, current_time, 'first_user.birthday should be equal to the current_time')
问题是我的测试失败了,我无法立即明白原因。断言失败报告了我提供的消息,我很困惑,因为我确定生日设置为现在的值。我最终不得不重构我的断言以明确失败的值。
self.assertEqual(first_user.birthday, current_time,
'first_user.birthday ' + str(first_user.birthday) + ' should equal ' + str(current_time))
这表明生日是日期字段而不是日期时间字段。我的问题是是否存在某种替代形式的断言将预期值和实际值作为失败消息的一部分转储,或者我是否以某种方式滥用或误解了 API?