0

我可以通过rails手动测试我的 API并将我的 HTTP 客户端指向http://127.0.0.1:3000/api

现在,我想通过功能自动测试我的 API。所以我成功设置了一个启动 cucumber 和 rspec 的保护服务器。

cucumber 是否启动我的应用程序并在任何端口下提供我的 API 入口点?这样我就可以在我的步骤定义中使用 HTTP 客户端并将其指向http://127.0.0.1:8989/api例如?

我知道我可以在 Guardfile 中指定一个 :cucumber_port => 4321 但我的 API 在此端口下不可用。

4

1 回答 1

1

不,Cucumber 不会使用服务器启动您的应用程序。

要对其进行测试,您可以执行以下操作:

  1. 使用 rack_test。它为您提供了 , 等方法#get#post它是首选。例如:
get('api/test')
response.code.should == '200'
  1. 使用 Capybara 启动服务器。不过会长很多。您可以通过将以下代码添加到env.rb
require 'capybara/rails'
Capybara::Server.new(Capybara.app).boot

现在您可以在以下位置访问您的 APIhttp://127.0.0.1:9887/api

于 2012-02-22T11:52:19.817 回答