Reputation: 21096
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?
Upvotes: 6
Views: 1513
Reputation: 21096
Capybara should be extend
-ed, not include
-ed:
module Support
extend Capybara::DSL
def self.do_something
click_link 'Questions'
end
end
Upvotes: 6
Reputation: 4934
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
Upvotes: 1