我曾经在Django中看到以下测试:
with self.assertTemplateUsed('<someTemplate>'):
response = self.client.get('<someURL>')
self.assertEqual(response.status_code, 200)
问题:
由于我们已经有with
部分,是否有必要测试status_code
?换句话说,最终的陈述是多余的吗?
答案 0 :(得分:3)
即使使用视图渲染模板测试status_code
也始终是一个好主意。
Django使您能够在渲染模板时传递您的愿望的状态代码。
render()
和render_to_response
都将status
作为关键字参数,以便您可以使用您认为适合该视图的状态代码呈现该页面。
因此,您可以使用任何响应状态代码而不仅仅200
呈现模板。这使您有理由在使用assertTemplateUsed
作为上下文管理器时测试状态代码。
答案 1 :(得分:1)
如果您的应用可能使用相同的模板发送不同的响应状态,那么这不是多余的。在一般情况下,使用assertTemplateUsed
就可以了。