Интеграционный тест с Cucumber + Guard + Spork: могу ли я получить доступ к своей точке входа REST? - PullRequest
0 голосов
/ 22 февраля 2012

Я могу вручную проверить мой API через rails s и указать моему HTTP-клиенту на http://127.0.0.1:3000/api.

Теперь я хочу автоматически протестировать мой API с помощью функций.Итак, я успешно настроил сервер защиты, который запускает огурец и rspec.

Запускает ли огурец мое приложение и предоставляет ли мне точку входа API под любым портом?Так что я могу использовать HTTP-клиента внутри моих определений шагов и указать, например, http://127.0.0.1:8989/api?

Я знаю, что могу указать: cucumber_port => 4321 в Guardfile, но мой APIнедоступен для этого порта.

1 Ответ

1 голос
/ 22 февраля 2012

Нет, Cucumber не запускает ваше приложение с сервера.

Чтобы проверить это, вы можете сделать следующее:

  1. Использовать rack_test.Он предоставляет вам такие методы, как #get, #post и т. Д. Это предпочтительнее.Например:
get('api/test')
response.code.should == '200'
  1. Запустите свой сервер с Capybara.Однако это будет намного дольше.Вы можете сделать это, добавив следующий код к env.rb:
require 'capybara/rails'
Capybara::Server.new(Capybara.app).boot

Теперь вы можете получить доступ к своему API на http://127.0.0.1:9887/api

...