由于 Django 中基于类的通用视图涉及框架的一些工作,我发现很难以 TDD 风格使用它们。现在,我使用 TestClient 从 http 模拟堆栈访问视图,但我更愿意在使用 TestClient 进行“功能”测试之前正确地对特定方法(例如 get_object 和 get_queryset 的重写)进行单元测试。
有没有一种(快速)方法来获取 ClassView 的正确实例来对其执行单元测试?
一般来说,这包括通过创建请求RequestFactory https://docs.djangoproject.com/en/dev/topics/testing/advanced/#django.test.client.RequestFactory并使用关键字参数实例化视图类。之后,您可以调用任何视图方法并评估结果,传递任何所需的参数。
我建议您检查一下基础View https://code.djangoproject.com/browser/django/trunk/django/views/generic/base.py#L11类,特别是__init__ https://code.djangoproject.com/browser/django/trunk/django/views/generic/base.py#L19, as_view https://code.djangoproject.com/browser/django/trunk/django/views/generic/base.py#L30 and dispatch https://code.djangoproject.com/browser/django/trunk/django/views/generic/base.py#L56方法。它们对于理解框架如何与视图对象交互至关重要。
需要注意的最重要的一点是,视图方法期望在请求响应过程中被调用,因此允许它们依赖self.request
, self.args
and self.kwargs
在接到电话之前必须在场,因此请确保您已做好准备。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)