首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django测试rest框架: APIRequestFactory与APIClient

Django测试rest框架: APIRequestFactory与APIClient
EN

Stack Overflow用户
提问于 2015-08-21 09:19:10
回答 1查看 8.5K关注 0票数 48

作为测试新手,我希望在Django (Django-rest-框架)中测试我的API。

我正在为我的视图设置测试,这是我的API端点。现在看一下文档,我可以使用APIRequestFactory或APIClient。两人似乎都在做同样的事。

这两者之间有什么区别,为什么/什么时候我应该使用其中一种?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-21 09:46:07

如果你看一下Django中用于测试“标准”视图的工具和助手,你会发现一些非常类似的东西,TestClientRequestFactory

RequestFactory与测试客户端共享相同的API。但是,RequestFactory提供了一种方法来生成一个请求实例,该实例可以用作任何视图的第一个参数,而不是像浏览器那样运行。这意味着您可以像测试任何其他函数一样测试一个视图函数--作为一个黑匣子,具有完全已知的输入,测试特定的输出。

TestClient允许您从用户浏览站点的角度与站点进行交互(.尽管测试Javascript是另一回事)。在像这样测试你的站点(会话、中间件、URL路由等等)时,很多事情都会起作用。因此,这些通常是模拟与您的站点或API的真实世界交互的更集成的测试。

RequestFactory允许您以非常孤立的方式测试视图。您可以构建一个请求并测试您的视图,而不需要设置您的urls或关心在中间件中发生的事情,所以这更接近于一个典型的单元测试。

也就是说,这两种类型的测试都是有用的。为了获得一个普遍的感觉,如果您的API按预期工作,我可能会开始使用APIClient,并在涉及到更复杂的视图时使用RequestFactories。但是,正确的组合在很大程度上取决于您的具体应用。

票数 70
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32136787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档