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