urls template examples example bootstrap django unit-testing tdd django-urls

template - ¿Cómo pruebo unidades URL de django?



httpresponse django example (1)

He logrado una cobertura de prueba del 100% en mi aplicación en todas partes, excepto en mi urls.py ¿Tiene alguna recomendación sobre cómo podría escribir pruebas unitarias significativas para mis URL?

FWIW Esta pregunta surgió cuando estoy experimentando con Test-Driven Development y quiero pruebas fallidas antes de escribir código para corregirlas.


Una forma sería reverse nombres de URL y validar

Ejemplo

urlpatterns = [ url(r''^archive/(/d{4})/$'', archive, name="archive"), url(r''^archive-summary/(/d{4})/$'', archive, name="archive-summary"), ]

Ahora, en la prueba

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/'')

Probablemente estés probando las vistas de todos modos.

Ahora, para probar que la URL se conecta a la vista correcta, puede usar la resolve

from django.urls import resolve resolver = resolve(''/summary/'') assertEqual(resolver.view_name, ''summary'')

Ahora en la resolver variables (instancia de clase ResolverMatch ), tiene las siguientes opciones

''app_name'', ''app_names'', ''args'', ''func'', ''kwargs'', ''namespace'', ''namespaces'', ''url_name'', ''view_name''