J'ai atteint une couverture de test de 100% dans mon application partout sauf mon urls.py
. Avez-vous des recommandations sur la façon dont je pourrais écrire significatif tests unitaires pour mes URL?
FWIW Cette question s'est posée alors que j'expérimente avec le développement piloté par les tests et que je veux des tests qui échouent avant d'écrire du code pour les corriger.
Une façon serait de reverse
les noms d'URL et de valider
Exemple
urlpatterns = [
url(r'^archive/(\d{4})/$', archive, name="archive"),
url(r'^archive-summary/(\d{4})/$', archive, name="archive-summary"),
]
Maintenant, dans le test
from Django.urls import reverse
url = reverse('archive', args=[1988])
assertEqual(url, '/archive/1988/')
url = reverse('archive-summary', args=[1988])
assertEqual(url, '/archive-summary/1988/')
Vous testez probablement les vues de toute façon.
Maintenant, pour tester que l'URL se connecte à la bonne vue, vous pouvez utiliser resolve
from Django.urls import resolve
resolver = resolve('/summary/')
assertEqual(resolver.view_name, 'summary')
Maintenant, dans la variable resolver
( ResolverMatch
instance de classe), vous avez les options suivantes
'app_name',
'app_names',
'args',
'func',
'kwargs',
'namespace',
'namespaces',
'url_name',
'view_name'