gpt4 book ai didi

django - 如何使用 Django 测试框架测试 404 NOT FOUND?

转载 作者:行者123 更新时间:2023-11-28 19:47:03 25 4
gpt4 key购买 nike

我正在尝试使用 Django 1.4 的测试框架自动执行 404 页面测试。

如果我在开发服务器运行时在浏览器地址栏中打印 127.0.0.1:8000/something/really/weird/,我会看到一个 404 页面,具有正确的“404 NOT FOUND”状态(如 Firebug 表演)。

但是如果我尝试使用这段代码进行测试:

from django.test import TestCase
class Sample404TestCase(TestCase):
def test_wrong_uri_returns_404(self):
response = self.client.get('something/really/weird/')
self.assertEqual(response.status_code, 404)

测试失败,输出如下:

$./manage.py test main
Creating test database for alias 'default'...
.F
======================================================================
FAIL: test_wrong_uri_returns_404 (main.tests.Sample404TestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File ".../main/tests.py", line 12, in test_wrong_uri_returns_404
self.assertEqual(response.status_code, 404)
*AssertionError: 200 != 404*

----------------------------------------------------------------------
Ran 2 tests in 0.031s

FAILED (failures=1)
Destroying test database for alias 'default'...

我对在这里获得 200 个代码感到非常惊讶。任何人都知道为什么会发生这种情况?

更新:

这里是 urls.py: http://pastebin.com/DikAVa8T实际失败的测试是:

def test_wrong_uri_returns_404(self):
response = self.client.get('/something/really/weird/')
self.assertEqual(response.status_code, 404)

项目中的一切都在发生 https://github.com/gbezyuk/django-app-skeleton

最佳答案

尝试

response = self.client.get('/something/really/weird/') # note the '/' before something

127.0.0.1:8000/something/really/weird/ 在相对于 root 的路径中是 /something/really/weird/不是

  • 有些/真的/很奇怪
  • 有些/真的/很奇怪/
  • /something/really/weird

关于django - 如何使用 Django 测试框架测试 404 NOT FOUND?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10469018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com