私のアプリケーションでは、urls.py
。 URLの意味のある単体テストの書き方に関する推奨事項はありますか?
FWIWこの質問は、私がテスト駆動開発を実験しており、それらを修正するコードを書く前にテストに失敗することを望んでいるときに生じました。
1つの方法は、 reverse
URL名と検証
例
urlpatterns = [
url(r'^archive/(\d{4})/$', archive, name="archive"),
url(r'^archive-summary/(\d{4})/$', archive, name="archive-summary"),
]
今、テストで
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/')
とにかくビューをテストしているでしょう。
ここで、URLが正しいビューに接続することをテストするために、 resolve
を使用できます
from Django.urls import resolve
resolver = resolve('/summary/')
assertEqual(resolver.view_name, 'summary')
変数resolver
( ResolverMatch
class instance)には、次のオプションがあります
'app_name',
'app_names',
'args',
'func',
'kwargs',
'namespace',
'namespaces',
'url_name',
'view_name'