1

我正在 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 是一个有效页面。

有什么想法可能是错的吗?

4

1 回答 1

1

您正在尝试访问self.client.get不存在的 URL: made_up_url。正如 dan-klasson 告诉你的,你需要得到/made_up_url.

我建议不要在self.client.get参数中硬编码 URL,而是首先在文件中命名相关的 URL 。urls.py所以你可以通过reverse函数来​​解决它。

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

from django.core.urlresolvers import reverse

url = reverse('made_up_url')
resp = self.client.get(url)
self.assertEqual(resp.status_code, 404)
于 2013-07-18T13:22:43.410 回答