我正在尝试使用 Django 1.4 的测试框架自动化 404 页面测试。
如果我在运行开发服务器的浏览器地址栏中打印127.0.0.1:8000/something/really/weird/
,我会看到一个 404 页面,并显示正确的“404 NOT FOUND”状态(如萤火虫所示)。
但是,如果我尝试使用此代码进行测试:
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)