Ich versuche Einheit Testfall für eine externe Facing API meiner Django-Anwendung zu schreiben. Ich habe ein Modell namens Dummy
mit zwei Feldern temp
und content
. Die folgende Funktion wird von Dritten aufgerufen, um das Feld content
abzurufen. temp
ist ein indizierter eindeutiger Schlüssel.Unit-Test eine externe Facing-Funktion
@csrf_exempt
def fetch_dummy_content(request):
try:
temp = request.GET.get("temp")
dummy_obj = Dummy.objects.get(temp=temp)
except Dummy.DoesNotExist:
content = 'Object not found.'
else:
content = dummy_obj.content
return HttpResponse(content, content_type='text/plain')
Ich habe die folgenden Einheit Testfall.
def test_dummy_content(self):
params = {
'temp': 'abc'
}
dummy_obj = mommy.make(
'Dummy',
temp='abc',
content='Hello World'
)
response = self.client.get(
'/fetch_dummy_content/',
params=params
)
self.assertEqual(response.status_code, 200)
self.assertEqual(response.content, 'Hello World')
Jedes Mal, wenn ich den Testfall laufen, geht es in exception
und gibt Object not found.
statt Hello World
. Nach weiteren Debugging habe ich festgestellt, dass temp
von Anfrage Objekt innerhalb Ansicht Funktion immer None
ist, obwohl ich es in params
übergeben.
Ich könnte etwas vermissen und nicht in der Lage, herauszufinden. Was ist der richtige Weg, um diese Art von Funktionen zu testen?
Vielen Dank, Alter. – Pattu