加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何对Django休息框架请求进行单元测试?

发布时间:2020-12-20 13:48:16 所属栏目:Python 来源:网络整理
导读:我有一个Django-rest-framework API,我想进行单元测试.更具体地说,我想单独测试一些数据验证方法.这些数据验证方法将获取请求作为其参数,如下所示: def validate(request) 为了单独测试它,我需要一种创建请求的方法.在django-rest-framework中,有APIRequest
我有一个Django-rest-framework API,我想进行单元测试.更具体地说,我想单独测试一些数据验证方法.这些数据验证方法将获取请求作为其参数,如下所示:

def validate(request)

为了单独测试它,我需要一种创建请求的方法.在django-rest-framework中,有APIRequestFactory,可用于创建请求.主要问题是,APIRequestFactory不会创建django-rest-framework使用的相同请求.相反,它将创建网站声明的常规django请求:

Note: When using APIRequestFactory,the object that is returned is Django’s standard HttpRequest,and not REST framework’s Request object,which is only generated once the view is called.

但是因为那些验证方法使用了django-rest-frameworks请求,所以我无法使用API??RequestFactory对它们进行单元测试.有没有办法单独测试那些,或者我应该只使用API??Client,并尝试测试整个APIView?我不想这样做,因为那时它不会是一个纯粹的单元测试.使用API??Client,我只能获得响应,而不是请求.为什么django-rest-framework请求没有APIRequestFactory?我的意思是,如果这些是django-rest中使用的那些,那么请求工厂为什么不生成那些呢?

解决方法

能够通过不将请求发送到验证方法来绕过此,而是将request.DATA发送.这样,验证方法在请求时独立,但仅依赖于发送给它们的数据.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读