【发布时间】:2013-07-18 11:26:22
【问题描述】:
我正在 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 是有效的页面。
有什么想法可能是错的吗?
【问题讨论】:
-
print resp的节目是什么? -
你试过
/made_up_url吗? -
这很奇怪。所以如果我去made_up_url,我会得到我写的404页面。如果我记录“resp”是什么,我会得到我的 404 页面的 html。我在我的设置页面中使用了 Debug (True/False),并且我有一个“TESTING”变量,它定义了我的 app/models.py 生成的模型,具体取决于我是否正在测试...... ..也许这是导致问题的原因
-
也许我应该添加以下内容。在我的主要 app.models 中,我有: if TESTING: blah(models.Model) else: blah2(models.Model) 当我有 DEBUG = False 并且我的 TESTING 为 false 时,我的 404 页面很好...... TESTING=False 中定义的模型有一个完全填充的数据库....TESTING=True 中的模型有一个空数据库,我在测试过程中填充了一点......这是我有 TESTING=True 的时候,我就是无法收到 404 错误。
标签: django django-testing django-tests