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 回答