を除くすべてのアプリケーションで 100% のテスト カバレッジを達成しましたurls.py
。URL に対して意味のある単体テストを作成する方法について、何か推奨事項はありますか?
FWIW この質問は、テスト駆動開発を試していて、コードを記述して修正する前に失敗したテストが必要なときに発生しました。
を除くすべてのアプリケーションで 100% のテスト カバレッジを達成しました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
クラスインスタンス)には、次のオプションがあります
'app_name',
'app_names',
'args',
'func',
'kwargs',
'namespace',
'namespaces',
'url_name',
'view_name'