Tek yön reverse
URL isimlere olmak ve 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/')
Muhtemelen görüşlerini her durumda test ediyoruz yılında, Şimdi Örnek
urlpatterns = [
url(r'^archive/(\d{4})/$', archive, name="archive"),
url(r'^archive-summary/(\d{4})/$', archive, name="archive-summary"),
]
geçerli kılacak.
Şimdi URL sağ görüşe bağlanmak test etmek, değişken resolver
(ResolverMatch
sınıf örneği) Şimdi resolve
from django.urls import resolve
resolver = resolve('/summary/')
assertEqual(resolver.view_name, 'summary')
kullanabilirsiniz, aşağıdaki seçenekler sunulur
'app_name',
'app_names',
'args',
'func',
'kwargs',
'namespace',
'namespaces',
'url_name',
'view_name'
FYI meslektaşlarım bu kavramı almışlar ve [[assert]] 'i (https://github.com/incuna/incuna-test-utils/blob/master/incuna_test_utils/testcases/urls.py#L8) Yeni testlerimiz için yeni kütüphanemiz] (https://github.com/incuna/incuna-test-utils). – meshy
Kullanıyorum: "assertEqual (resolver.func.func_name, 'archive')' çözümleyicinin doğru görünümde olduğunu test etmek için. Anladığım kadarıyla, "resolver.view_name" aslında görünüm değil, url kuralının adıdır. –
Genel olarak Django testlerinde (örn., Görünümler için) veya yalnızca bu durumda özellikle birim test URL'leri için 'reverse (...) 'kullanarak mı destekliyorsunuz? Görme testinde çok kullandığını görüyorum ama bir anti-desen gibi görünüyor. –