2015-03-25 1 views
2

Я строю API с рельсами, используя рельсы-api gem. Я хочу использовать огурец-рельсы и драгоценный камень «Воздушно-десантные», чтобы проверить его.Как расширить мир в контексте огуречных рельсов?

Воздушно-десантные устройства содержат некоторые полезные вспомогательные методы для тестирования ответов API, к которым я хочу получить доступ в своих определениях шагов. Раньше я делал это в Sinatra, что было относительно просто настроить в файле /features/env.rb.

Кажется, однако, что с рельсами-огурцами создание «Мира» происходит где-то за кулисами, и я не знаю, как его расширить, чтобы использовать модуль Airborne после его создания.

Я попытался следующие:

Airborne.configure do |config| 
    config.rack_app = Rails.application 
end 

Cucumber::Rails::World.extend(Airborne) 

When(/^I make a request for information about an event$/) do 
    get "/events/1" 
end 

Then(/^I receive the information as a JSON$/) do 
    expect_json {} 
end 

Я до сих пор получаю NoMethodError на #expect_json, который является метод Airborne.

Итак, мой вопрос: как я могу продлить экземпляр мира в контексте огуречных рельсов?

ответ

1

Не паникуйте, мир спасен. Решение состоит в том, чтобы обернуть Airborne и все остальное в модуле:

module MyHelpers 
    include Airborne 
    include Capybara::DSL 
end 

Затем проходить мимо:

World(MyHelpers) 
Смежные вопросы