gpt4 book ai didi

ruby-on-rails - 测试构建在 RESTful Web 服务之上的应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 16:10:52 24 4
gpt4 key购买 nike

让我们说;我正在开发一个 Web 应用程序,它与 RESTful Web 服务进行某些事情的对话。

RESTful 网络服务不是第三方,而是与主要应用程序并行开发(一个很好的例子是电子商务应用程序和支付处理器;或社交网络和 SSO 系统)。

在这样的系统中,可以通过两种方式进行验收( cucumber )或功能测试:

  1. 通过使用对象级模拟库模拟所有外部调用;例如 MochaJMock
  2. 通过在 http 级别进行模拟,使用诸如 webmock 之类的库。
  3. 通过实际让主应用程序进行实际调用。

#1 和#2 的问题是,如果底层应用程序的 API 发生变化;我的测试会继续通过,代码会实际中断,因此首先会破坏测试的目的。

#3 的问题是,我无法对数据进行回滚,就像测试套件在teardown 上所做的那样。而且我正在并行运行我的测试,因此如果我让实际的 Web 服务继续运行,我将收到诸如“用户名已被占用”之类的错误。

所以社区的问题是,什么是最佳实践?

最佳答案

将您的主要应用程序置于开发或暂存环境中。在同一环境中启动您的 Web 服务。让一个调用另一个。控制两者的夹具数据。那不是 mock ;你没有得到一个假的实现。

这不仅可以让您对现实世界的稳定性更有信心,还可以让您在暂存环境中测试性能,还可以让您针对各种版本的网络服务测试您的主应用程序。当您的 Web 服务发生变化时,您的测试不会做错事很重要,但更重要的是您的主应用程序也不会。在生产中升级任一组件之前,您真的想自信地知道这一点。

关于ruby-on-rails - 测试构建在 RESTful Web 服务之上的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3982008/

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