gpt4 book ai didi

ruby-on-rails - 如何使用 Cucumber 测试非 Ruby、非 Rack API

转载 作者:行者123 更新时间:2023-12-03 17:33:50 25 4
gpt4 key购买 nike

我用 cucumber 做很多事情。我真的很喜欢它作为 BDD 环境。

所以我想将它用作测试 API 的外部工具。我想做这样的事情:

  Scenario: Hit api /info path and get info back
When I visit the API path '/info'
Then I should see the following text "Here's info on the API"

或类似的东西。我主要想将 API 视为黑盒并仅测试输入和输出。我不打算检查 API 内部的任何内容。

我看过的大多数与 Cucumber 一起工作的库(例如 Capybara)似乎都是围绕基于 Rack 的应用程序设计的。我想要类似的东西,但不依赖于机架。

存在哪些没有机架依赖性的 gem(如果有的话)。或者有没有办法使用 Capybara 来测试远程服务器上的 API?

最佳答案

我不会使用 Capybara 来测试远程 API,因为 Capybara 是为测试应用程序而设计的,用于测试具有 HTML UI 的应用程序(正如 Aslak 在评论中指出的那样)。

相反,我会将 Cucumber* 与 HTTParty 之类的东西结合使用,后者将是用于发出 HTTP 请求并巧妙地解析它们的工具。这是一个想法:

When /^I visit the API path '(.*?)'/ do |path|
@result = HTTParty.get("http://theapi.com/#{path}")
end

Then /^I should see the following result:$/ do |result|
@result.should == result
end

这里的最后一步你会像这样使用:

Then I should see the following result:
"""
{ success: true }
"""

* 我个人实际上会使用 RSpec,我发现语法不那么笨拙。

关于ruby-on-rails - 如何使用 Cucumber 测试非 Ruby、非 Rack API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7934013/

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