如何将Capybara纳入Cucumber项目的模块中

And*_*lov 6 ruby cucumber capybara

我定义了一个模块:

module Support
  include Capybara::DSL

  def self.do_something
    click_link 'Questions'
  end
end
Run Code Online (Sandbox Code Playgroud)

它位于features/support/support.rb

我的env.rb:

require 'capybara'
require 'cucumber'
require 'capybara/cucumber'

Capybara.app_host = "http://www.stackoverflow.com"
Capybara.run_server = false
Capybara.default_driver = :selenium
Run Code Online (Sandbox Code Playgroud)

我在steps.rb中调用模块的功能:

Support::do_something
Run Code Online (Sandbox Code Playgroud)

我有例外:

undefined method `click_link' for Support:Module (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

如何在支持模块中提供Capybara?

And*_*lov 6

水豚应该是 - extend而不是include:

module Support
  extend Capybara::DSL

  def self.do_something
    click_link 'Questions'
  end
end
Run Code Online (Sandbox Code Playgroud)