簡體   English   中英

創建表單測試:測試斷言失敗時如何查看表單錯誤

[英]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.

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