django测试使用的正确模板:with self.assertTemplateUsed()

时间:2016-03-29 05:06:36

标签: django testing

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

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

问题:

由于我们已经有with部分,是否有必要测试status_code?换句话说,最终的陈述是多余的吗?

2 个答案:

答案 0 :(得分:3)

即使使用视图渲染模板测试status_code也始终是一个好主意。

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

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

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

答案 1 :(得分:1)

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