我在使用Django测试Client()测试中间件时遇到问题。它似乎特别模拟会话中间件。但是,由于它基于RequestFactory,因此它似乎不运行任何中间件。
有没有办法让测试客户端为请求和响应两者应用中间件?我知道通常有其他方法专门测试中间件。但是,在某些情况下,我想用完整的中间件堆栈测试请求。这样做的任何方式?
我正在考虑扩展Client并修改其request()类并在函数开头通过中间件堆栈运行请求,并通过函数底部的中间件堆栈响应。你认为这样的事情会起作用吗?如果没有,你能指出一些可以解释原因的资源吗?
答案 0 :(得分:6)
您可能需要override_settings
。
请参阅https://docs.djangoproject.com/en/dev/topics/testing/tools/#django.test.override_settings。
@override_settings(MIDDLEWARE_CLASSES=(
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
...
))
class ViewTest(TestCase):
def setUp(self):
pass