gpt4 book ai didi

Django 测试休息框架 : APIRequestFactory vs APIClient

转载 作者:行者123 更新时间:2023-12-03 11:53:22 25 4
gpt4 key购买 nike

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

我正在为我的 View 设置测试,即我的 API 端点。现在查看文档,我可以使用 APIRequestFactory 或 APIClient。两者似乎都在做同样的事情。

这两者之间有什么区别,为什么/什么时候我应该使用一个或另一个?

最佳答案

如果你看 tools and helpers for testing "standard" views in Django你会发现一些非常相似的东西, TestClient 和一个 RequestFactory .

The RequestFactory shares the same API as the test client. However, instead of behaving like a browser, the RequestFactory provides a way to generate a request instance that can be used as the first argument to any view. This means you can test a view function the same way as you would test any other function – as a black box, with exactly known inputs, testing for specific outputs.


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

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

也就是说,这两种类型的测试都是有用的。为了大致了解您的 API 是否按预期工作,我可能会开始使用 APIClient 并在涉及更复杂的 View 时使用 RequestFactories。但正确的组合很大程度上取决于您的具体应用。

关于Django 测试休息框架 : APIRequestFactory vs APIClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32136787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com