我在測試我的Django應用程序時遇到了問題。我可以在瀏覽器中加載一個頁面就好了,但我的測試代碼返回404Django測試404錯誤?
這個測試返回False:
def test_item(self):
response = self.client.get('/items/1/')
self.assertEqual(response.status_code, 200)
如果我堅持在某處有一個打印線...
print(response)
...它返回完整的HTML網頁,如預期:
Vary: Accept-Language, Cookie
Content-Type: text/html; charset=utf-8
Content-Language: en
<!DOCTYPE html>
...
</html>
這看起來不錯(應該是20 0)給我。但它不是:
print(response.status_code)
...返回404
我缺少什麼?
版本
Django的1.6,Python的2.7.6
URL
http://localhost:8000/items/1/
urls.py
urlpatterns = patterns('',
url(r"^(?P<item_id>[0-9]+/?)/$", "item.views.item_by_id",),
)
views.py
def item_by_id(request, item_id):
try:
item = Item.objects.get(id=item_id)
except Item.DoesNotExist:
raise Http404
return render(request, 'item.html', {'item': item})
的是,在你的第一個代碼塊中的錯誤?它顯示你正在測試'resp_1'的'status_code',但它應該測試'response'。 – Alex
是的,對不起;來自複製/粘貼的神器。我更新了我的問題。謝謝! – allanberry
你可以添加查看代碼嗎? – Alex