Hi again

As part of the refactoring I'm doing, I'm writing out quite a bit of 
metaprogramming.  The easiest way to prove constant lookup is working is to 
create a new class in an example group, and use its name.  But the scope of the 
example group definition appears to be the containing module, which gives the 
following behaviour:

  module MyModule
    describe "MyClass" do
      class TestClass; end
    
      # This passes
      it "has access to the test class" do
        expect {
          TestClass
        }.to_not raise_error
      end
      
      # This fails
      it "hides the test class somewhere?" do
        TestClass.name.should_not eq "MyModule::TestClass"
      end
    end
  end

  module MyModule
    describe "MyClass doing something else" do
      # This fails
      it "has a different scope to the example above" do
        expect {
          TestClass
        }.to raise_error(NameError)
      end
    end
  end

I've got a few questions:

* Is this intended behaviour, or just merely the way RSpec 2 happens to work?

* Would a more unique scope be useful? (To me it would, obviously... don't know 
about the tradeoff in general though)

* Has this changed since RSpec 1.3?  (I guess I could install and find out...)

Cheers
Ash

-- 
http://www.patchspace.co.uk/
http://www.linkedin.com/in/ashleymoran



_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to