2013-02-18 7 views
-1

У меня есть следующее определение шага:огурец + шаг водосвинки определения - отправка POST запросы

When /^I upload it$/ do 

end 

, которая относится к загрузке файла. метод визита в водосвинки, от того, что я могу сказать, это единственный метод GET .. и единственный способ сделать запрос POST является реализацией:

visit "/files/new" 
within('#upload-form') do 
    attach_file('File', @files_path+'/file.txt') 
    click_button('Upload') 
end 

это не кажется очень сильный тест, так как ее зависимость от теги HTML и формы в файле/новом шаблоне.

есть ли лучший способ справиться с этим, или это нормально? я имел в виду что-то вроде этого:

сообщение files_new_path {файл: => «a_file_on_the_system.txt»}

, но затем снова огурца тесты интеграционные тесты .. так что является «официальным» или лучший способ написать тесты на этом уровне?

ответ

1

Коды Capybara имитируют действия человека. Вы не можете ожидать от человека «POST», но только «посещение», «click_button» и т. Д.

Синтаксис, который вы упомянули, будет лучше соответствовать тестированию контроллера, но не будет интеграционным тестом с Capybara.

Лучший стиль интеграции теста, на мой взгляд, состоит в том, чтобы думать и действовать как человек, а не машина.