python / intermediate
Snippet
Testen asynchroner Django-Funktionen mit SimpleTestCase
Djangos Test-Runner führt Coroutinen in Testfällen nativ aus, wenn Testmethoden mit `async def` deklariert werden.
snippet.py
python
1
2
3
4
5
6
7
from django.test import SimpleTestCasefrom myapp.services import format_user_notificationclass AsyncNotificationTest(SimpleTestCase):async def test_async_message_formatting(self):result = await format_user_notification("welcome")self.assertEqual(result, "Welcome to the platform!")
django
Erklärung
1
from django.test import SimpleTestCase
Importiert SimpleTestCase für Unit-Tests ohne Datenbankinteraktion.
2
from myapp.services import format_user_notification
Importiert die zu testende asynchrone Hilfsfunktion.
3
class AsyncNotificationTest(SimpleTestCase):
Deklariert eine Testfall-Klasse, die von SimpleTestCase erbt.
4
async def test_async_message_formatting(self):
Definiert eine asynchrone Testmethode, die Coroutinen direkt abwarten kann.
5
result = await format_user_notification("welcome")
Wartet auf die zu testende asynchrone Funktion, um deren Rückgabewert zu erhalten.
6
self.assertEqual(result, "Welcome to the platform!")
Überprüft, ob das Ergebnis der asynchronen Funktion mit dem erwarteten Text übereinstimmt.