How to include Capybara into module in Cucumber project

与世无争的帅哥 提交于 2019-12-23 09:15:48

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!