问题
I defined a module:
module Support
  include Capybara::DSL
  def self.do_something
    click_link 'Questions'
  end
end
It's situated at features/support/support.rb
My env.rb:
require 'capybara'
require 'cucumber'
require 'capybara/cucumber'
Capybara.app_host = "http://www.stackoverflow.com"
Capybara.run_server = false
Capybara.default_driver = :selenium
I invoke function of module in steps.rb:
Support::do_something
And I have exception:
undefined method `click_link' for Support:Module (NoMethodError)
How can I make Capybara available in Support module?
回答1:
Capybara should be extend-ed, not include-ed:
module Support
  extend Capybara::DSL
  def self.do_something
    click_link 'Questions'
  end
end
    回答2:
module SupportModule
    class Support
        include Capybara::DSL
        def do_something
            click_link 'Questions'
        end
    end
end
s = SupportModule::Support.new
s.do_something
http://rubydoc.info/github/jnicklas/capybara/master/Capybara/DSL
来源:https://stackoverflow.com/questions/14057532/how-to-include-capybara-into-module-in-cucumber-project