[英]creating tests for forms: how to see the form's errors when the test assertions fail
我目前正在嘗試為表單創建測試,該測試肯定是有效的,因為我正在應用程序中對其進行手動測試,但是在測試中向我展示了form.is_valid == False。 我不知道自己在測試中做錯了什么,有沒有辦法單獨檢查每個字段以找出導致測試形式無效的原因?
我的代碼:
forms.py
from django.forms import ModelForm
from django import forms
from .models import Comment
class CommentForm(ModelForm):
class Meta:
model = Comment
fields = ['nick', 'rate', 'content']
widgets = {'nick': forms.HiddenInput()}
test_forms.py
from django.test import TestCase
from django.contrib.auth.models import User
from ..forms import CommentForm
class CommentFormTest(TestCase):
def test_form(self):
user = User.objects.create(username='Testowy')
form_data = {
'nick': user,
'rate': '1',
'content': 'test content',
}
form = CommentForm(data=form_data)
self.assertEqual(form.is_valid(), True)
測試斷言始終具有可選參數(最后一個參數或msg
),以使您可以在斷言失敗的情況下打印消息。 您應該在測試中盡可能多地使用它(除非結果本身很明顯),以幫助您確定斷言失敗的原因:
self.assertTrue(
form.is_valid(),
msg=f"form should have been valid, but contains errors: {form.errors}")
這樣,錯誤將被打印到測試控制台輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.