Django test RequestFactory vs Client

后端 未结 2 805
孤独总比滥情好
孤独总比滥情好 2021-01-31 01:32

I am trying to decide whether I should use Django\'s Client or RequestFactory to test my views.

I am creating my server using DjangoRESTFramewo

2条回答
  •  说谎
    说谎 (楼主)
    2021-01-31 02:18

    RequestFactory and Client have some very different use-cases. To put it in a single sentence: RequestFactory returns a request, while Client returns a response.

    The RequestFactory does what it says - it's a factory to create request objects. Nothing more, nothing less.

    The Client is used to fake a complete request-response cycle. It will create a request object, which it then passes through a WSGI handler. This handler resolves the url, calls the appropriate middleware, and runs the view. It then returns the response object. It has the added benefit that it gathers a lot of extra data on the response object that is extremely useful for testing.

    The RequestFactory doesn't actually touch any of your code, but the request object can be used to test parts of your code that require a valid request. The Client runs your views, so in order to test your views, you need to use the Client and inspect the response. Be sure to check out the documentation on the Client.

提交回复
热议问题