/ / Django-Test, keine 404-Antwort, wenn erwartet - Django, Django-Test, Django-Test

Django-Test, keine 404-Antwort, wenn erwartet - Django, Django-Test, Django-Test

Ich schreibe einige Tests in Django, um die Apps zu überprüfen, die ich geschrieben habe. Ich arbeite mehr oder weniger daran, was hier vorgeschlagen wird (http://toastdriven.com/blog/2011/apr/10/guide-to-testing-in-django/). Wie auch immer, wenn ich etwas wie

    resp = self.client.get("made_up_url")
self.assertEqual(resp.status_code, 404)

was nicht existiert (und daher hoffe ich auf eine 404-Antwort, d. h. der Test wird bestehen) ... aber der Test schlägt fehl, 200! = 400 zu sagen, d.h. es scheint zu denken, dass die made_up_url eine gültige Seite ist.

Irgendwelche Ideen, was könnte falsch sein?

Antworten:

0 für die Antwort № 1

Sie versuchen zu self.client.get eine nicht vorhandene URL: made_up_url. Wie Dan-Klasson es dir gesagt hat, musst du es bekommen /made_up_url.

Ich schlage vor, dass, anstatt die URL in der self.client.get Argumente, zuerst Benennen Sie die zugehörige URL in deinem urls.py Datei. So können Sie es über das lösen reverse Funktion.

Dann, sobald Sie eine haben name Dafür können Sie dies in Ihren Komponententests tun:

from django.core.urlresolvers import reverse

url = reverse("made_up_url")
resp = self.client.get(url)
self.assertEqual(resp.status_code, 404)