使用RequestsClient()优于APIClient()有什么好处?

时间:2016-11-08 13:35:51

标签: unit-testing django-rest-framework

我正在为Django-rest-framework API端点编写unittest。在version 3.5中,他们添加了RequestsClient()。文档说 -

  

此接口不会向网络发送任何HTTP请求,而是将所有传出请求强制转换为WSGI,并直接调用您的应用程序。

根据我的理解,我认为RequestsClient()对来自不同服务器的网络请求很有用。不确定它在同一台服务器上是否有任何优势?使用RequestsClient()优于APIClient()吗?

2 个答案:

答案 0 :(得分:4)

  

使用RequestsClient()优于APIClient()

是否有任何优势

这是一个更高的测试杠杆。 RequestsClient将从APIClient绕过的WSGI层测试您的堆栈。 这也意味着使用身份验证或CSRF的测试看起来更像真实请求。

答案 1 :(得分:3)

如果您不确定,请使用标准APIClient

如果有的话,

RequestsClient非常有用:

  1. 您打算与其他Python服务中的大多数API进行交互,并希望您的测试工作在同一级别。
  2. 您希望以允许您在实时或暂存环境中运行测试的方式编写测试。