在 Django测试文档中,他们承诺您可以“测试是否为给定的 URL 执行了正确的视图”。
但是我没有发现如何测试执行哪个视图的任何可能性。我希望在Response
课堂上会这样,但执行的视图没有任何内容。
提前致谢。
在 Django测试文档中,他们承诺您可以“测试是否为给定的 URL 执行了正确的视图”。
但是我没有发现如何测试执行哪个视图的任何可能性。我希望在Response
课堂上会这样,但执行的视图没有任何内容。
提前致谢。
您可以这样提取视图函数名称
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
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 关于路由测试的帖子更详细,并提供了使测试更容易的技术。