Rob*_*wen 20 django rest unit-testing django-rest-framework
刚接触测试我想在Django(Django-rest-framework)中测试我的API.
我正在为我的观点设置测试,这是我的API端点.现在查看文档,我可以使用APIRequestFactory或APIClient.两者似乎也做同样的事情.
这两者有什么区别,为什么/何时应该使用其中一种?
ari*_*rie 30
如果你看一下在Django中测试"标准"视图的工具和帮助器,你会发现一些非常类似的东西TestClient
,a和a RequestFactory
.
RequestFactory与测试客户端共享相同的API.但是,RequestFactory不是像浏览器那样运行,而是提供了一种生成请求实例的方法,该实例可以用作任何视图的第一个参数.这意味着您可以像测试任何其他功能一样测试视图功能 - 作为黑盒子,具有完全已知的输入,测试特定输出.
将TestClient
让你与你的网站从用户浏览网站的观点互动(...虽然测试JavaScript是另一个故事).在测试您的网站时会有很多事情发生(Sessions,Middlewares,URL-Routing等).因此,这些通常是更多的集成测试,模仿真实世界与您的网站或API的互动.
A RequestFactory
允许您以非常孤立的方式测试您的视图.您可以构建请求并测试您的视图,而无需设置您的URL或关心中间件等中发生的事情.因此,这更接近于典型的单元测试.
也就是说,两种类型的测试都很有用.为了大致了解您的API是否按预期工作,我可能会开始使用APIClient并在涉及更复杂的视图时使用RequestFactories.但正确的组合在很大程度上取决于您的具体应用.
归档时间: |
|
查看次数: |
3766 次 |
最近记录: |