Django测试rest框架:APIRequestFactory与APIClient
作为测试新手,我希望在Django(Django rest框架)中测试我的API 我正在为我的视图(即API端点)设置测试。现在查看文档,我可以使用APIRequestFactory或APIClient。两者似乎做了同样的事情 这两者之间有什么区别,为什么/什么时候我应该使用其中一个呢?如果你看一下,你会发现一些非常相似的东西,和 RequestFactory与测试客户端共享相同的API。然而, RequestFactory提供了一种 生成可以用作第一个参数的请求实例 任何观点。这意味着您可以使用与测试相同的方法测试视图函数 您可以测试任何其他函数–作为一个黑匣子,使用完全已知的 输入,测试特定输出Django测试rest框架:APIRequestFactory与APIClient,django,rest,unit-testing,django-rest-framework,Django,Rest,Unit Testing,Django Rest Framework,作为测试新手,我希望在Django(Django rest框架)中测试我的API 我正在为我的视图(即API端点)设置测试。现在查看文档,我可以使用APIRequestFactory或APIClient。两者似乎做了同样的事情 这两者之间有什么区别,为什么/什么时候我应该使用其中一个呢?如果你看一下,你会发现一些非常相似的东西,和 RequestFactory与测试客户端共享相同的API。然而, RequestFactory提供了一种 生成可以用作第一个参数的请求实例 任何观点。这意味着您可以使
TestClient
允许您从浏览站点的用户的角度与站点进行交互(尽管测试Javascript是另一回事)。在测试您的站点时,很多事情都会起作用(会话、中间件、URL路由等)。因此,这些通常是更具集成性的测试,模拟真实世界中与站点或API的交互
RequestFactory
允许您以非常隔离的方式测试视图。您可以构建请求并测试视图,而无需设置URL或关心中间件中发生的事情。
所以这更接近于典型的单元测试
也就是说,这两种类型的测试都很有用。如果您的API按照预期工作,为了获得一般的感觉,我可能会开始使用ApicClient,并在涉及更复杂的视图时使用RequestFactorys。但是正确的混合很大程度上取决于你的具体应用