我正在使用Cucumber/Capybara來測試Web應用程序。我幾乎是一個完整的Ruby初學者,它對Cucumber/Capybara的開發人員的真實見證就是我能夠測試我的應用程序的程度,只有我擁有的微不足道的Ruby知識。紅寶石/黃瓜/水豚測試多部分文件上傳
但是,正如您可能已經猜到的那樣,我已經達到了目標,我需要一些專家幫助。我需要測試一個多部分文件上傳。問題是我測試的Web應用程序有一個URL命令接口,但沒有關聯的頁面。所以我不能只加載頁面,填寫參數並按下按鈕。我必須以編程方式格式化POST命令。
到目前爲止,我一直在使用'visit'來交互這個應用程序。即我有步驟的定義,如:
Given /^I delete an alert with alertID "([^"]*)" from the site$/ do |alertID|
visit WEB_SITE_ROOT + "/RemoteService?command=deleteAlert&siteName=#{$Site}&alertID=#{alertID}"
end
但現在我需要做一些職位。我發現一些代碼,似乎做什麼,我需要:
Given /^I upload the "([^"]*)" file "([^"]*)" for the alert$/ do |fileType, fileName|
file = File.new(fileName, "rb")
reply = RestClient.post(
"#{WEB_SITE_ROOT}" + "/FileUploader?command=upload&siteName=#{$Site}&alertID=#{$OriginalAlertID}",
:pict => file,
:function => "#{fileType}",
:content_type => 'multipart/jpg',
)
end
但這不是在同一個黃瓜/水豚會話中運行,所以沒有被授權(前面的步驟之一是登錄)。此外,來自Web應用程序的回覆沒有被黃瓜/水豚拿走,所以我的成功/失敗測試不起作用。
有人可以請指出我在正確的方向嗎?