그래서 장고에서 TDD를 연습하는 방법을 배우고 있으며 사소한 문제가 있습니다. 필자는 인증 된 시스템 사용자와 일대일 관계로 연결되는 사용자 지정 사용자 개체를 만들었습니다.Django assertEqual은 실제 값과 예상 값을 표시하지 않습니다.
def test_creating_a_user_with_attributes(self):
myuser = Myuser.objects.create_user('Gary', email='[email protected]')
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))
이렇게하면 생일은 날짜 필드이고 datetime 필드는 아닙니다. 내 질문은 실패 메시지의 일부로 예상 값과 실제 값을 덤프하는 어설 션의 대체 형식이 있거나 API를 오용하거나 오해 한 경우에 더 습관적입니까?
덧붙여 말하면, UserProfiles를 보셨습니까? https://docs.djangoproject.com/en/1.4/topics/auth/#storing-additional-information-about-users (분명히 그들은 Django 1.5 th에서 변경 중임) – hwjp
팁을위한 고맙습니다! 아직 장고 문서를 모두 읽지는 않았습니다. 나는 인터넷 주위에있는 많은 튜토리얼과 예제를 사용하여 속도를 높이려고 노력하고있다. "장고 제 2 판의 확실한 가이드"를 읽고있다. – Cliff