だから私は Django で TDD を練習する方法を学んでいますが、ちょっとした問題があります。認証されたシステム ユーザーに 1 対 1 の関係でリンクするカスタム ユーザー オブジェクトを作成しました。カスタム ユーザー クラスの一部を実行する次のテストがあります。
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 を何らかの形で誤用または誤解している場合です。