python / intermediate
Snippet
Isolierte View-Request-Tests mit der Django RequestFactory
RequestFactory erstellt eine direkte HttpRequest-Instanz, ohne das URL-Routing-System oder die Middleware-Kette zu durchlaufen. Dies ermöglicht gezielte, schnelle Unit-Tests einzelner View-Funktionen mit benutzerdefiniertem Request-Status.
snippet.py
python
1
2
3
4
5
6
7
8
9
10
11
12
13
from django.test import RequestFactory, TestCasefrom django.contrib.auth.models import AnonymousUserfrom myapp.views import dashboard_viewclass ViewIsolationTestCase(TestCase):def setUp(self):self.factory = RequestFactory()def test_dashboard_anonymous_access(self):request = self.factory.get('/dashboard/')request.user = AnonymousUser()response = dashboard_view(request)self.assertEqual(response.status_code, 302)
django
Erklärung
1
self.factory = RequestFactory()
Initialisiert die RequestFactory-Hilfsinstanz innerhalb des Test-Setups.
2
request = self.factory.get('/dashboard/')
Erstellt ein Mock-GET-Request-Objekt für den angegebenen Pfad.
3
request.user = AnonymousUser()
Fügt einen nicht authentifizierten Dummy-Benutzer hinzu, um den Request-Kontext zu simulieren.
4
response = dashboard_view(request)
Ruft die View direkt durch Übergabe des erstellten Request-Objekts auf.