【问题标题】:django test the correct template used: with self.assertTemplateUsed()django 测试使用的正确模板:使用 self.assertTemplateUsed()
【发布时间】:2016-03-29 05:06:35
【问题描述】:

我曾经在 Django 中看到过以下测试:

with self.assertTemplateUsed('<someTemplate>'):
    response = self.client.get('<someURL>')
    self.assertEqual(response.status_code, 200)

问题:

既然我们已经有了with 部分,是否有必要测试status_code?换句话说,最后的语句是多余的吗?

【问题讨论】:

    标签: django testing


    【解决方案1】:

    测试status_code 总是一个好主意,即使使用视图渲染模板。

    Django 让您能够在渲染模板时传递您希望的状态代码。

    render()render_to_response 都将 status 作为关键字参数,以便您可以使用您认为适合视图的状态代码呈现页面。

    因此,您可以使用任何响应状态代码呈现模板,而不仅仅是200。这让您有理由在使用 assertTemplateUsed 作为上下文管理器时测试状态代码。

    【讨论】:

      【解决方案2】:

      如果您的应用可能使用相同的模板发送不同的响应状态,这并不是多余的。在一般情况下,使用assertTemplateUsed 就可以了。

      【讨论】:

        猜你喜欢
        • 2017-02-11
        • 2010-10-10
        • 1970-01-01
        • 2013-06-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-22
        • 2020-01-10
        • 1970-01-01
        相关资源
        最近更新 更多