Accessing helper module constants in rspec contexts.

T

Tekhne

I'm trying to learn rspec, and came across something unexpected with
the following code. A little googling hasn't turned any answers up so
far...

module TestHelper
CONSTANT = "constant"
end

context "A context" do
include TestHelper

specify "should allow unqualified access to included constants" do
CONSTANT.should_eql "constant"
end

specify "should allow qualified access to all constants" do
TestHelper::CONSTANT.should_eql "constant"
end
end

....I would expect both specifications to pass since I think that's the
way Ruby itself behaves when using include (you get direct access to
constants in the local scope when included, right?), but the
unqualified specification fails. Is this a bug in rspec, a "feature"
of rspec, a mistake on my part, or something else?
 
D

David Chelimsky

I'm trying to learn rspec, and came across something unexpected with
the following code. A little googling hasn't turned any answers up so
far...

module TestHelper
CONSTANT = "constant"
end

context "A context" do
include TestHelper

specify "should allow unqualified access to included constants" do
CONSTANT.should_eql "constant"
end

specify "should allow qualified access to all constants" do
TestHelper::CONSTANT.should_eql "constant"
end
end

...I would expect both specifications to pass since I think that's the
way Ruby itself behaves when using include (you get direct access to
constants in the local scope when included, right?), but the
unqualified specification fails. Is this a bug in rspec, a "feature"
of rspec, a mistake on my part, or something else?

It's a known bug in rspec:

http://rubyforge.org/tracker/index.php?func=detail&aid=7613&group_id=797&atid=3152

Thanks for posting this - you may have actually shed some light on the
problem by posing the qualified and unqualified references.

Cheers,
David
 
D

David Chelimsky


Ah, okay. Thanks a lot for the pointer. I should have searched the
tracker specifically. Next time =]

No problem.

Also - are you aware that there are lists specifically for rspec users
and developers? I try to keep an eye on rspec related messages on the
ruby-talk list, but the rspec lists have the eyes of a lot more people
so you might get better traction on your rspec questions there:

http://rubyforge.org/mail/?group_id=797

Cheers,
David
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,022
Latest member
MaybelleMa

Latest Threads

Top