簡體   English   中英

測試異常失敗

[英]Testing for exception fails

保存用戶模型時,我想檢查它是否具有用戶名。 因此,我寫了這個pre_save

@receiver(pre_save, sender=User)
def validate_user(sender, instance, **kwargs):
    if len(instance.username) <= 5: raise Exception("Username too short")

現在,在我的測試方法中,我想測試此異常:

def test_user_no_username(self):
    u = User.objects.create()
    self.assertRaises(Exception, u.save())

測試失敗。 為什么?

assertRaises是一種特定的異常- 作為第二個參數,您應該傳遞一個callable

assertRaises(exception, callable, *args, **kwds)

換句話說,不要調用u.save()

self.assertRaises(Exception, u.save)

另外,您應該真正考慮使用自定義異常或使用內置的Django驗證錯誤,而不是引發和捕獲廣泛的Exception

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM