Я использую Cucumber / Capybara для тестирования веб-приложения.Я почти новичок в Ruby, и это реальное свидетельство для разработчиков Cucumber / Capybara о том, как далеко я смог протестировать свое приложение, имея лишь минимальное количество знаний о Ruby, которое у меня есть.
Однако, как вы, наверное, догадались, я дошел до того, что мне нужна помощь специалиста.Мне нужно проверить загрузку нескольких файлов.Проблема в том, что тестируемое веб-приложение имеет командный интерфейс URL, но не имеет связанных страниц.Поэтому я не могу просто загрузить страницу, заполнить параметр и нажать кнопку.Я должен отформатировать команду POST программно.
До сих пор я взаимодействовал с этим приложением исключительно с помощью 'посещения'.то есть у меня есть определения шагов, такие как:
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
Но он не выполняется в том же сеансе огурца / капибары и поэтому не авторизован (одним из предыдущих шагов был вход в систему).Кроме того, ответ из веб-приложения не принимается огурцом / капибарой, и поэтому мой тест на успех / неудачу не работает.
Может кто-нибудь указать мне правильное направление?