我如何在Django单元测试中验证我的上下文包含一个表单对象



我正在使用django和python 3.7。我有这个观点...

def get(request):
    context = {}
    if not request.GET:
        tax_calculator_form = TaxCalculatorForm()
    else:
        ...
    context['form'] = tax_calculator_form
    return render(request, "tax_calculator.html", context)

我想在单位测试中写出某种断言,以验证该模型包含我的形式对象。我怎么做?到目前为止,我有

# Simple test to verify we can get the tax form
def test_get_tax_form(self):
    response = self.client.get("/form")
    self.assertEqual(response.status_code, 200)
    self.assertTemplateUsed(response, "tax_calculator.html")

响应具有一个context属性,其中包含用于渲染模板的上下文。

self.assertIn('form', response.context)

可以使用 assertin ,但最好使用 assertContains

self.assertContains(response, 'form', count=None, status_code=200, msg_prefix='', html=False)

这允许您获得更多选项并同时检查status_code。例如,将html设置为true以将文本作为html。与响应内容的比较将基于HTML语义,而不是字符平等。更多信息。

最新更新