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