2009-08-24 15 views

Antwort

0

Django hat eine ziemlich umfangreiche Bibliothek zum Testen von Django Web-Anwendungen. Die Details der Tests sind ein wenig über den Rahmen dieser Antwort hinaus, aber Sie können die relevanten Dokumente über testing Django applications für weitere Details lesen. Insbesondere denke ich, dass Sie an den Abschnitten making requests und testing responses interessiert sein werden, mit denen Sie Anfragen an URLs (zu Testzwecken) stellen und die Antworten testen können. Django hat auch eine TestCase Unterklasse, die assertions speziell für die Verwendung mit HTTP-Anfragen und Antworten enthält.

2

Wenn Sie nur Routen testen möchten wie Rails, Ryan Wilcox explains how to test routes directly. Um (kurz) seine Antwort einkapseln, können Sie den Resolver importieren und testen, was es löst:

>>> from django.core.urlresolvers import get_resolver 
>>> resolver = get_resolver(None) 
>>> resolver.resolve('/some/path/') 
ResolverMatch(func=...) 

Beachten Sie, dass löst eine Ausnahme übereinstimmen andernfalls müssen Sie fangen.

get_resolver(None) erhalten Sie den Resolver für alle die Routen in Ihrem aktiven settings.py; wenn man nur die Routen aus einer App testen möchten, können Sie so etwas wie:

>>> from django.core.urlresolvers import get_resolver 
>>> import my_app 
>>> resolver = get_resolver(my_app.urls) 

(P. S. Die oben vorausgesetzt, dass Sie in einem django-happy Dolmetscher sind, ins Leben gerufen von python manage.py shell)