gpt4 book ai didi

ruby-on-rails - 端到端测试 RESTful Web 服务 (Rails)

转载 作者:行者123 更新时间:2023-11-28 19:47:44 24 4
gpt4 key购买 nike

我正在尝试筛选无数的测试解决方案,但我什至不确定我的方向是否正确。故事是:我们正在运行一个 RESTful Web 服务,作为 Rails 应用程序实现,它支持我们的移动客户端。我们正在对 Web 服务进行单元测试(当然),但这涉及模拟应用程序的许多部分,例如搜索堆栈 (Apache SOLR)。

此外,我们的测试不(即不能!)涵盖移动登录/登录过程等关键路径,因为这涉及 API 应用程序和移动网站之间的通信,用户可以在其中输入凭据,例如用于 SSO(Janrain Engage)。因此,标准的 Rails 集成测试是行不通的。

我意识到,理论上,如果测试套件设计得非常好,模拟只会严格发生在下一层测试开始的那些连接点,然后通过单元或功能测试服务 API 和移动网站单独地,一个人可以获得相同的测试覆盖率。但我发现在实践中,如果您有多个开发人员独立处理测试套件,这就是一种错觉;我只是承认我们的单元测试设计得不够好。特别是在练习 TDD 时,我发现虽然测试可以驱动应用程序代码,但测试代码设计仅针对被测单元量身定制,导致测试套件增长相当快。

我发现的另一件事是,有时我们并没有纯粹使用单元测试来检测回归,例如由于链式 react ,错误的查询被发送到 SOLR 服务器。这就是为什么我认为确保整个堆栈沿着关键路由工作的唯一真正方法是在每次部署之前在登台服务器上自动进行端到端测试,即将实际的 HTTP 请求发送到应用程序。

我的问题是:

  • 你认为这样做合理吗?我发现很少有关于在网络上对实时 API 进行端到端测试的信息,这让我想知道我是否有任何意义
  • 您会推荐哪些工具/设置?我们使用 Watir 为我们的网站运行验收测试,但它似乎对 Web 服务来说太过分了(不需要浏览器环境,不需要 JS 或任何类似 UI 的东西)。甚至像 Ruby 脚本一样简单的东西?
  • 您可以给我 w.r.t. 的任何一般最佳实践或建议设计这样的测试?

最佳答案

您可能对此感兴趣:http://groups.google.com/group/ruby-capybara/browse_thread/thread/5c27bf866eb7fad3

您可能想尝试将 Cucumber(或类似工具)与上面链接中提到的工具之一结合起来,这样您就可以做类似的事情

Given I have 2 posts
When I send "DELETE" to post with id 1
Then I should have 1 post

通过这种方式,您可以测试 API 的完整堆栈并检查结果。

关于ruby-on-rails - 端到端测试 RESTful Web 服务 (Rails),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6355324/

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