Итак, я изучаю, как практиковать TDD в Django, и у меня небольшие проблемы. Я создал пользовательский объект пользователя, который связывается с аутентифицированными пользователями системы в отношениях один к одному. У меня есть следующий тест, который осуществляет часть моего пользовательского класса пользователя: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))
Это показало, что день рождения был полем даты, а не полем даты. Мой вопрос заключается в том, что существует какая-то альтернативная форма утверждения, которая сбрасывает ожидаемые и фактические значения как часть сообщения об ошибке или если я каким-то образом злоупотребляю или неправильно понимаю API?
Кстати, вы взглянули на UserProfiles? https://docs.djangoproject.com/en/1.4/topics/auth/#storing-additional-information-about-users (видимо, они меняются в Django 1.5 tho) – hwjp
Thanx для подсказки! Я еще не читал все документы django. Я пытаюсь найти скорость, используя ряд обучающих программ и примеров, которые я нахожу в Интернете, и я читаю «Окончательное руководство по Django 2nd edition» – Cliff