Thanks guys, that makes sense.  I'm definitely focusing too much on
the new element (RSpec) and too little on the basic architecture!

On Mar 3, 7:18 am, Ethan <notet...@gmail.com> wrote:
> You're defining the @countries instance variable outside of any method.
> You're making @countries an instance variable of whatever 'self' is in the
> describe block (which appears to be a class or a module), which is not the
> same thing that your methods are being called on (presumably an instance of
> that class or a class including that module). If you want 'countries' to be
> the same across all instances of the class, use a class variable. If you
> want it to be the same throughout the program, use a global. If it should be
> per-instance, use an instance variable defined in some method of the class
> (#initialize, most likely).
>
> On Tue, Mar 2, 2010 at 16:11, Adam Reed <reed.a...@gmail.com> wrote:
> > This script works, but only if I explicitly define the array that I'm
> > iterating over (][countryname, url]].each do, rather than
> > @countries.each do).  In a nutshell, the script goes to a static page,
> > collects the links, visits each linked page and verifies an item - it
> > has been significantly dumbed down for the purpose of this question
> > and I have tested this simplified version to make sure it gives the
> > same output.
>
> > Can someone help me understand why my array here (@countries) is not
> > recognized?  I tried to instantiate it as a global variable
> > ($countries) and it still was not recognized.  Is it an issue with my
> > organization/format, or something else?
>
> > **** Again, if I explicitly describe an array in place of the
> > variable, the script works ****.
>
> > global_page_spec.rb
> > $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 ==
> > __FILE__
> > require 'helpers/example_helper'
>
> > describe "The country page for" do
> >  include ExHelper
>
> >  before(:all) do
> >    setup
> >    collect_global_countries
> >  end
>
> > �...@countries.each do |name, link|
> >    describe name do
> >    it "should contain the word #{name} in the title" do
> >     �...@browser.goto link
> >     �...@browser.div(:id, /content-content/).text.should include(name)
> >    end #it
> >    end #desc
> >  end #countries
>
> >  after(:all) do
> >    teardown
> >  end #after
> > end #spec
>
> > example_helper.rb
> > $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 ==
> > __FILE__
> > require 'helpers/global_helper'
>
> > module ExHelper
> >  include GlobalHelper
>
> >  def setup
> >   �...@browser = Watir::Browser.new
> >   �...@browser.add_checker lambda {|b| b.text.should_not include('The
> > requested page could not be found.')}
> >  end # setup
>
> >  def collect_global_countries
> >   �...@countries = Array.new
> >   �...@countries.should be_empty
>
> >   �...@browser.goto "http://www.#{$env}.com/global";
> >   �...@browser.table(:class, /global-list/).links.each do |link|
> >     �...@countries << [link.text, link.href]
> >    end #links
>
> >   �...@countries.should_not be_empty
>
> >  def teardown
> >   �...@browser.close
> >  end # teardown
> > end #module
>
> > The Error:
>
> > global_page_spec.rb:12: undefined method `each' for nil:NilClass
> > (NoMethodError)
> >        from C:/Ruby/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/example/
> > example_group_methods.rb:183:in `module_eval'
> >        from C:/Ruby/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/example/
> > example_group_methods.rb:183:in `subclass'
> >        from C:/Ruby/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/example/
> > example_group_methods.rb:55:in `describe'
> >        from C:/Ruby/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/example/
> > example_group_factory.rb:31:in `create_example_group'
> >        from
> > C:/Ruby/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/dsl/main.rb:
> > 28:in `describe'
> >        from global_page_spec.rb:4
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Watir General" group.
> > To post to this group, send email to watir-general@googlegroups.com
> > Before posting, please read the following guidelines:
> >http://wiki.openqa.org/display/WTR/Support
> > To unsubscribe from this group, send email to
> > watir-general+unsubscr...@googlegroups.com<watir-general%2bunsubscr...@googlegroups.com>
> > For more options, visit this group at
> >http://groups.google.com/group/watir-general
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Watir General" group.
To post to this group, send email to watir-general@googlegroups.com
Before posting, please read the following guidelines: 
http://wiki.openqa.org/display/WTR/Support
To unsubscribe from this group, send email to 
watir-general+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/watir-general

Reply via email to