2012-02-22 15 views
0

我可以通過rails s手動測試我的API,並將我的HTTP客戶端指向http://127.0.0.1:3000/api使用Cucumber + Guard + Spork進行集成測試:我可以訪問我的REST入口點嗎?

現在,我想通過功能自動測試我的API。所以我成功地建立了一個啓動黃瓜和rspec的警衛服務器。

黃瓜是否啓動我的應用程序並在任何端口下提供我的API入口點?這樣我可以在步驟定義中使用HTTP客戶端,並將其指向http://127.0.0.1:8989/api例如?

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

回答

1

不,Cucumber不會啓動您的應用程序與服務器。

爲了測試它,你可以做到以下幾點:

  1. 使用rack_test。它爲您提供了像#get#post等方法。它是首選。例如:
get('api/test') 
response.code.should == '200' 
  1. 開始你水豚服務器。然而,它會更長。您可以通過添加以下代碼env.rb做到這一點:
require 'capybara/rails' 
Capybara::Server.new(Capybara.app).boot 

現在你可以在http://127.0.0.1:9887/api

+0

確定訪問API這條線是解決水豚:: Server.new(Capybara.app)。開機。我不使用Rack :: Test,但現在我可以在我的步驟定義中訪問我的API。另外我可以用Capybara.server_port = 9887修復這個端口 – Ginkgochris 2012-02-22 14:08:33

相關問題