Python 使用django测试表单并给出断言错误
我正试图用Django项目为我的表单编写测试。 我尝试测试以下书单: forms.py 我的test_forms.py如下所示:Python 使用django测试表单并给出断言错误,python,django,forms,sqlite,testing,Python,Django,Forms,Sqlite,Testing,我正试图用Django项目为我的表单编写测试。 我尝试测试以下书单: forms.py 我的test_forms.py如下所示: class BookFormTest(TestCase): def test_read_date_in_the_past(self): print('BookForm TEST Lounched') title = 'TestBookPast' author = 'TestAuthorPast' date = datetime.dat
class BookFormTest(TestCase):
def test_read_date_in_the_past(self):
print('BookForm TEST Lounched')
title = 'TestBookPast'
author = 'TestAuthorPast'
date = datetime.date.today() + datetime.timedelta(days=2)
form_data = {'title': title, 'author': author, 'read_date': date}
form = BookForm(data=form_data)
self.assertTrue(form.is_valid())
我不知道它为什么不起作用。也许我忘了一些非常重要的事情
我总是得到这样的断言错误:
self.assertTrueform.exe是否有效
断言者错误:False不是true
显然,该表格与您提供的数据不符。这可能是因为您将日期对象作为read_date传递,而不是包含日期的字符串 检查form.errors,以明确表单无效的原因 为此,您可以在断言之前添加一条print语句
print(form.errors)
如果输出被您的测试框架吞没,并且没有打印到控制台,那么您也可以尝试调试器。添加此行:
import pdb; pdb.set_trace()
然后,测试将在该行停止,并提示pdb。输入p form.errors以打印错误
然后可以输入q退出调试器
或者,您也可以使用Python manage.py shell启动Python shell并手动输入代码。非常感谢。第一部分帮助处理form.errors。从列表中选择author时出错,我应该创建test_author,然后将其传递给form_data={'author':test_author.id},该作者可以从下拉列表中选择。
import pdb; pdb.set_trace()