How to include Capybara in a module in a Cucumber project

I defined a module:

module Support include Capybara::DSL def self.do_something click_link 'Questions' end end 

It is located by the functions /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 call the module function in .rb steps:

 Support::do_something 

And I have an exception:

 undefined method `click_link' for Support:Module (NoMethodError) 

How can I make Capybara available in the support module?

+6
source share
2 answers

Capybara should be extend -ed, not include -ed:

 module Support extend Capybara::DSL def self.do_something click_link 'Questions' end end 
+6
source
 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

+1
source

All Articles