我正在使用rails-api gem构建一个带有Rails的API。我想用黄瓜轨道和宝石‘空中’来测试它。
for附带了一些很好的辅助方法来测试API响应,我想在我的步骤定义中访问这些方法。我以前在Sinatra中做过这种事情,在/feature/env.rb文件中配置它相对简单。
然而,似乎使用rails-cucumber创建“World”是在幕后的某个地方进行的,我不知道如何扩展它以在创建后使用机载模块。
我尝试过以下几种方法:
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我仍然在#expect_json上得到一个NoMethodError,这是一种机载方法。
所以我的问题是:如何在cucumber-rails上下文中扩展World的实例?
发布于 2015-03-27 17:41:08
别惊慌,世界已经被拯救了。解决方案是包装Airborne和模块中的任何其他内容:
module MyHelpers
include Airborne
include Capybara::DSL
end然后传递它:
World(MyHelpers)https://stackoverflow.com/questions/29257549
复制相似问题