如果 form.is_valid 是测试视图的最聪明方法?

Smartest way to test a view if form.is_valid?

正在寻找一种好的方法来测试属于有效形式的视图的一部分:

Views.py:

def calendar_request(request):
    form = create_event(request.POST)
    if form.is_valid():
         date = request.POST['date']
         time = request.POST['time']
         return HttpResponseRedirect(request.path)
    else:
         print('Form not valid')

所以我检查了我的表格是否有效 tests.py:

 def test_form_valid_request(self):
    date = '2019-04-16'
    time = '14:00'
    form_data = {'date':date,
                 'time':time,}
    form = create_event(data=form_data)
    self.assertTrue(form.is_valid)

效果很好。所以我继续将这些行添加到我的测试函数中:

   response = client.get(reverse('test_form'), form_data)
   self.assertEqual(response.status_code, 200)

让我感到困惑的是 AssertTrue(form.is_valid) 在测试时有效,但在我的控制台中我总是得到打印 ('Form not valid')。

如果form.is_valid,我如何测试我认为的部分?

assertTrue(expr, msg=None)检查bool(x) is True,而不是x is True

所以,你应该调用函数(使用括号)

self.assertTrue(form.is_valid<b>()</b>)
                             <b>^^ here</b>