Andrei Botalov
Andrei Botalov

Reputation: 21096

How to include Capybara into module in Cucumber project

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

Answers (2)

Andrei Botalov
Andrei Botalov

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

Eugene Rourke
Eugene Rourke

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

Related Questions