Использование Cucumber для тестирования контроллера без представления в Rails - PullRequest
0 голосов
/ 09 сентября 2011

Я новичок в ruby ​​/ rails, и разрабатываемое мной приложение начинается с сообщения HTTP с другого веб-сайта, который передает некоторые данные, а затем отображает некоторые экраны сбора данных перед вызовом веб-службы.

Я хочу начать этот проект с использованием внешнего подхода, использующего Cucumber для интеграционных тестов и rspec для функционального / модульного тестирования.

Используя Cucumber, как мне смоделировать сообщение с внешнего сайта, чтобы я мог протестировать потоки с приложением.

Ответы [ 2 ]

1 голос
/ 09 сентября 2011

Это не имеет значения для приложения, из которого был получен вызов; только то, что предоставленные параметры совпадают с ожидаемыми со ссылкой на страницу. Если вы зависите от того, какой конкретный HTTP_REFERER установлен, посмотрите этот ответ о том, как установить заголовок в Cucumber.

add_headers({'HTTP_REFERER' => 'http://referringsite.com'})

Так как вы уже знаете, какие параметры / заголовки запроса ваше приложение ожидает от ссылающегося сайта, вы можете создать блок установки, который будет устанавливать их соответствующим образом для каждого cuke.

0 голосов
/ 06 ноября 2011

Если вы используете Cucumber с Capybara, вы можете сделать HTTP POST следующим образом.

When /^I sign in$/ do
  @user = Factory(:user)
  get "/login"
  page.driver.post sessions_path, :username => @user.username, :password =>   @user.password
end

В качестве альтернативы, если у вас есть представление, это будет что-то вроде этого.

When /^I sign in$/ do
  @user = Factory(:user)
  visit "/login"
  fill_in "Username", :with => @user.username
  fill_in "Password", :with => @user.password
  click_button "Log in"
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...