2014-01-31 83 views
0

我正在創建一個將生成Rack應用程序的Ruby命令行應用程序。我想測試創建的Rack應用程序是否是有效的Rack應用程序。我已經開始使用Aruba和Cucumber來測試CLI是否創建了正確的文件和目錄結構,但是現在我已準備好運行rackup並查看該應用程序是否正常運行。我怎樣才能讓黃瓜和水豚與這個新創建的應用程序進行交互?如何使用黃瓜測試Rack應用程序的創建?

回答

0

生成根頁爲您的機架應用程序,然後有什麼路徑,你認爲是你的根路徑和機架啓動驗證頁面

def response 
    if request.path "/" 
     Rack::Response.new(render("index.html.erb")) 
    else 
     Rack::Response.new("Not Found", 404) 
    end 
end 

在某種輸出的水豚,請訪問:@startup_output = "foo" 產生某種你的根頁上輸出的<%= @startup_output %>

水豚:

visit('/') 
page.should have_content('foo') 

如果你的東東d有水豚開始應用起來嘗試使用測試中rake任務:

system "rake rack:start" 
+0

謝謝,這是一個開始,但我已經有了一個Rack應用,並且我已經通過阿魯巴調用'rackup' 。我認爲這與Capybara的默認行爲不同,所以它不知道在哪裏可以找到這個新創建的Rack應用程序。我想我需要告訴Capybara加載'config.ru'文件,或者指定它正在運行的端口,但我不知道如何做到這一點。 – Andrew

+0

難道你不能只是創建一個YAML文件的配置信息(端口號,路徑等),並在該數據中有水豚負載?那麼你仍然可以在水豚測試中使用'visit(「#{CONFIG.root_url}」)''。我建議在YAML上檢查railscast(http://railscasts.com/episodes/85-yaml-configuration-revised),它可能會給你一些想法。祝你好運 – Davey