From: "chloƩ r." Date: 2013-06-09T01:24:54+09:00 Subject: Re: Use of capybara outside of any application Well, including module in module is a bit tricky. I think what you want to do here is an extend, not an include. include will put methods for instances of the class. Module's instances don't exist, I don't think that's what you want to do. On the other hand, extend will add methods in the singleton class of the class (or here, the module) so that methods are accessible by the class itself (or here, the module itself). So I guess you need to do this instead : module JustTestIt extend Capybara::DSL def self.run visit '/' end end Hope it helped ! tamouse mailing lists wrote in post #1111653: > I'm trying to set up a cucumber/capybara test suite that I can use > outside of my rails app to drive testing from the outside in. > > I've been reading through the capy README and thought I understood > this, but apparently I'm just missing something fundamental. > > I am starting with just this simple file: > > tamara@monovular Test/cukecapytest$ cat justtestit.rb > require 'capybara' > require 'capybara/dsl' > Capybara.default_driver = :selenium > Capybara.current_driver = :selenium > Capybara.run_server = false > Capybara.app_host = "http://www.google.com" > module JustTestIt > include Capybara::DSL > def self.run > visit '/' > end > end > > JustTestIt.run > tamara@monovular Test/cukecapytest$ ruby justtestit.rb > justtestit.rb:10:in `run': undefined method `visit' for > JustTestIt:Module (NoMethodError) > from justtestit.rb:14:in `
' > > I thought doing the include would bring in the methods. When I do the > include and visit without the module warpper, I get a warning about > including Capybara::DSL in the global context, BUT, the visit works in > that case. > > tamara@monovular Test/cukecapytest$ cat justtestitnomod.rb > require 'capybara' > require 'capybara/dsl' > Capybara.default_driver = :selenium > Capybara.current_driver = :selenium > Capybara.run_server = false > Capybara.app_host = "http://www.google.com" > include Capybara::DSL > def run > visit '/' > end > run > tamara@monovular Test/cukecapytest$ ruby justtestitnomod.rb > including Capybara::DSL in the global scope is not recommended! > > and it brings up a browser, goes to http://www.google.com/ as expected. > > So there is something here I'm just not getting (not a capybara > problem, but a basic understanding of how the mixin works??) > > halp? -- Posted via http://www.ruby-forum.com/.