Tôi đang cố gắng tự động kiểm tra trang 404 bằng cách sử dụng khung thử nghiệm của Django 1.4.Làm thế nào để kiểm tra 404 NOT FOUND với khung kiểm tra django?
Nếu tôi in 127.0.0.1:8000/something/really/weird/
trong thanh địa chỉ trình duyệt với máy chủ phát triển đang chạy, tôi thấy trang 404, với trạng thái "404 NOT FOUND" chính xác (dưới dạng chương trình firebug).
Nhưng nếu tôi cố gắng sử dụng mã này để thử nghiệm:
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)
thử nghiệm thất bại với sản lượng này:
$./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'...
Tôi nghiêm túc ngạc nhiên với nhận 200 mã ở đây. Bất cứ ai có bất kỳ ý tưởng tại sao trên trái đất này đang xảy ra?
Cập nhật:
đây nằm urls.py: http://pastebin.com/DikAVa8T và thực tế thử nghiệm thất bại là:
def test_wrong_uri_returns_404(self):
response = self.client.get('/something/really/weird/')
self.assertEqual(response.status_code, 404)
tất cả mọi thứ đang diễn ra trong dự án https://github.com/gbezyuk/django-app-skeleton
url của bạn trông như thế nào? Người trả lời dưới đây là chính xác về '/' hàng đầu, nhưng thậm chí sau đó bạn không nên nhận được 200 cho một url vô nghĩa. – Nils
Tôi đã cập nhật mô tả câu hỏi. Tệp chính xác nằm ở đây: https://github.com/gbezyuk/django-app-sk/blob/master/main/urls.py – gbezyuk