Django测试,预计没有404响应

时间:2013-07-18 11:26:23

标签: django django-testing django-tests

我正在Django中编写一些测试来检查我写的应用程序。我或多或少地通过这里建议的工作(http://toastdriven.com/blog/2011/apr/10/guide-to-testing-in-django/)。 但是,当我把类似

的东西
    resp = self.client.get('made_up_url')
    self.assertEqual(resp.status_code, 404)

哪个不存在(因此我希望404响应,即测试将通过)...但测试失败说200!= 400,即它似乎认为made_up_url是有效的页。

任何想法可能出错?

1 个答案:

答案 0 :(得分:0)

您正在尝试self.client.get一个不存在的网址:made_up_url。正如dan-klasson告诉你的那样,你需要得到/made_up_url

我建议,不要在self.client.get参数中对网址进行硬编码,而是在urls.py文件中首先name the related URL。因此,您可以通过reverse函数解决此问题。

然后,一旦你有了name,就可以在你的单元测试中做到这一点:

from django.core.urlresolvers import reverse

url = reverse('made_up_url')
resp = self.client.get(url)
self.assertEqual(resp.status_code, 404)