0
我正在創建一個將生成Rack應用程序的Ruby命令行應用程序。我想測試創建的Rack應用程序是否是有效的Rack應用程序。我已經開始使用Aruba和Cucumber來測試CLI是否創建了正確的文件和目錄結構,但是現在我已準備好運行rackup
並查看該應用程序是否正常運行。我怎樣才能讓黃瓜和水豚與這個新創建的應用程序進行交互?如何使用黃瓜測試Rack應用程序的創建?
我正在創建一個將生成Rack應用程序的Ruby命令行應用程序。我想測試創建的Rack應用程序是否是有效的Rack應用程序。我已經開始使用Aruba和Cucumber來測試CLI是否創建了正確的文件和目錄結構,但是現在我已準備好運行rackup
並查看該應用程序是否正常運行。我怎樣才能讓黃瓜和水豚與這個新創建的應用程序進行交互?如何使用黃瓜測試Rack應用程序的創建?
生成根頁爲您的機架應用程序,然後有什麼路徑,你認爲是你的根路徑和機架啓動驗證頁面
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"
謝謝,這是一個開始,但我已經有了一個Rack應用,並且我已經通過阿魯巴調用'rackup' 。我認爲這與Capybara的默認行爲不同,所以它不知道在哪裏可以找到這個新創建的Rack應用程序。我想我需要告訴Capybara加載'config.ru'文件,或者指定它正在運行的端口,但我不知道如何做到這一點。 – Andrew
難道你不能只是創建一個YAML文件的配置信息(端口號,路徑等),並在該數據中有水豚負載?那麼你仍然可以在水豚測試中使用'visit(「#{CONFIG.root_url}」)''。我建議在YAML上檢查railscast(http://railscasts.com/episodes/85-yaml-configuration-revised),它可能會給你一些想法。祝你好運 – Davey