作为测试新手,我希望在Django (Django-rest-框架)中测试我的API。
我正在为我的视图设置测试,这是我的API端点。现在看一下文档,我可以使用APIRequestFactory或APIClient。两人似乎都在做同样的事。
这两者之间有什么区别,为什么/什么时候我应该使用其中一种?
发布于 2015-08-21 09:46:07
如果你看一下Django中用于测试“标准”视图的工具和助手,你会发现一些非常类似的东西,TestClient和RequestFactory。
RequestFactory与测试客户端共享相同的API。但是,RequestFactory提供了一种方法来生成一个请求实例,该实例可以用作任何视图的第一个参数,而不是像浏览器那样运行。这意味着您可以像测试任何其他函数一样测试一个视图函数--作为一个黑匣子,具有完全已知的输入,测试特定的输出。
TestClient允许您从用户浏览站点的角度与站点进行交互(.尽管测试Javascript是另一回事)。在像这样测试你的站点(会话、中间件、URL路由等等)时,很多事情都会起作用。因此,这些通常是模拟与您的站点或API的真实世界交互的更集成的测试。
RequestFactory允许您以非常孤立的方式测试视图。您可以构建一个请求并测试您的视图,而不需要设置您的urls或关心在中间件中发生的事情,所以这更接近于一个典型的单元测试。
也就是说,这两种类型的测试都是有用的。为了获得一个普遍的感觉,如果您的API按预期工作,我可能会开始使用APIClient,并在涉及到更复杂的视图时使用RequestFactories。但是,正确的组合在很大程度上取决于您的具体应用。
https://stackoverflow.com/questions/32136787
复制相似问题