【问题标题】:Django testing and middlewareDjango 测试和中间件
【发布时间】:2012-12-06 15:27:50
【问题描述】:

我在使用 Django 测试 Client() 测试中间件时遇到问题。它似乎专门模拟会话中间件。但是,由于它是基于 RequestFactory,它似乎没有运行任何中间件。

有没有办法让测试客户端为请求和响应应用中间件?我知道通常还有其他专门测试中间件的方法。但是,在某些情况下,我想使用完整的中间件堆栈测试请求。有什么办法吗?

我正在考虑扩展 Client 并修改其 request() 类并通过函数开头的中间件堆栈运行请求,并通过函数底部的中间件堆栈运行响应。你认为这样的事情会奏效吗?如果没有,您能否指出一些可以解释原因的资源?

【问题讨论】:

    标签: python django django-testing django-middleware


    【解决方案1】:

    您可能需要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
    

    【讨论】:

      猜你喜欢
      • 2011-05-17
      • 1970-01-01
      • 2018-08-13
      • 2013-08-04
      • 1970-01-01
      • 2016-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多