【发布时间】:2015-06-01 21:19:42
【问题描述】:
我有一个 Django-rest-framework API,我想对其进行单元测试。更具体地说,我想分别对一些数据验证方法进行单元测试。这些数据验证方法将获取一个请求作为其参数,如下所示:
def validate(request)
为了单独测试,我需要一种创建请求的方法。在 django-rest-framework 中有APIRequestFactory,可用于创建请求。主要问题是,APIRequestFactory 不会创建 django-rest-framework 使用的相同请求。相反,它将按照网站所述创建常规 django 请求:
注意:使用 APIRequestFactory 时,返回的对象是 Django 的标准 HttpRequest,而不是 REST framework 的 Request 对象,它只在视图被调用时生成。
但由于这些验证方法使用 django-rest-frameworks 请求,我无法使用 APIRequestFactory 对它们进行单元测试。有什么方法可以单独对它们进行单元测试,还是我应该只使用 APIClient,并尝试测试整个 APIView?我不想那样做,因为那样它就不是一个纯粹的单元测试。使用 APIClient,我只能得到响应,而不是请求。为什么 django-rest-framework 请求没有 APIRequestFactory?我的意思是,如果这些是 django-rest 中使用的那些,那么为什么请求工厂不生成它们呢?
【问题讨论】:
标签: python django rest unit-testing django-rest-framework