How to unit test methods inside django's class based views?

别等时光非礼了梦想. 提交于 2019-12-03 12:33:01

To use class based views in your unittests try setup_view from here.

def setup_view(view, request, *args, **kwargs):
    """
    Mimic ``as_view()``, but returns view instance.
    Use this function to get view instances on which you can run unit tests,
    by testing specific methods.
    """

    view.request = request
    view.args = args
    view.kwargs = kwargs
    return view

You still need to feed it a request, you can do this with django.test.RequestFactory:

    factory = RequestFactory()
    request = factory.get('/customer/details')

You can then unittest your methods:

v = setup_view(MyClassedBasedView(), request) 
v.method_name()
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!