在Django testing documentation中,他们承诺你可以“测试是否为给定的URL执行了正确的视图。”
但是我没有发现如何测试执行哪个视图的可能性。我希望在Response
class中,但没有关于执行视图的内容。
提前致谢。
答案 0 :(得分: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
答案 1 :(得分:1)
Dave的答案涉及每次测试网址时的HTTP请求,这可能很慢。如果您只是想知道网址解析的视图,则可以在不使用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's post on route testing详细介绍并提供了使测试更容易的技巧。