【问题标题】:How do I verify in a Django unit test that my context contains a form object?如何在 Django 单元测试中验证我的上下文是否包含表单对象?
【发布时间】:2019-09-26 15:35:30
【问题描述】:

我正在使用 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")

【问题讨论】:

    标签: django python-3.x unit-testing view


    【解决方案1】:

    响应有一个context attribute,其中包含用于呈现模板的上下文。

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

    【讨论】:

    • 谢谢@Daniel。不幸的是,这给了我一个“TypeError:'in ' 需要字符串作为左操作数,而不是 ContextList”错误。
    • 抱歉,弄错了(最近 Ruby 太多了)。
    猜你喜欢
    • 1970-01-01
    • 2020-11-13
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 2011-03-10
    • 1970-01-01
    相关资源
    最近更新 更多