【发布时间】:2018-09-16 01:18:40
【问题描述】:
我正在使用 rails-api gem 使用 Rails 构建 API。我想使用 cucumber-rails 和 gem 'Airborne' 来测试它。
Airborne 附带了一些很好的辅助方法来测试 API 响应,我希望在我的步骤定义中可以访问这些方法。我之前在 Sinatra 中做过这种事情,在 /features/env.rb 文件中配置比较简单。
然而,似乎有了 rails-cucumber,“世界”的创建发生在幕后某处,我不知道如何扩展它以在创建后使用 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
我仍然在 #expect_json 上收到 NoMethodError,这是一种 Airborne 方法。
所以我的问题是:如何在 cucumber-rails 的上下文中扩展 World 的实例?
【问题讨论】: