4

Djangoテスト ドキュメントでは、「特定の URL に対して正しいビューが実行されることをテストする」ことができると約束しています。

ただし、どのビューが実行されたかをテストする方法は見つかりませんでした。Response私はクラスでそれを期待しますが、実行されたビューについては何もありません。

前もって感謝します。

4

2 に答える 2

2

このようにビュー関数名を抽出できます

from django.test.client import Client
c = Client()
response = c.get('/')
from django.core.urlresolvers import resolve
resolve(response.request["PATH_INFO"])[0].func_name
于 2010-09-08T15:53:19.620 に答える
1

Dave の回答には、URL をテストするたびに HTTP リクエストが必要であり、遅くなる可能性があります。URL がどのビューに解決されるかを知りたいだけの場合は、を使用せずにそれを行うことができますClient

>>> from django.core.urlresolvers import get_resolver
>>> from myapp.views import func_to_test
>>> resolver = get_resolver(None)
>>> match = resolver.resolve('/some/path/')
>>> if match.func is func_to_test:
>>>    print "correct function for resolution!"

ルート テストに関する Ryan Wilcox の投稿では、より詳細に説明されており、ルート テストをさらに簡単にするためのテクニックが提供されています。

于 2012-10-16T13:31:49.190 に答える