[rspec-users] accessing constants from another module within examples

Matt Wynne matt at mattwynne.net
Wed Jun 16 10:50:49 EDT 2010


On 16 Jun 2010, at 15:20, Matt Wynne wrote:

> 
> On 16 Jun 2010, at 15:11, Jarmo Pertman wrote:
> 
>> Hello.
>> 
>> I wanted to include module into ExampleGroup to write less code within
>> examples, but was unable to do so. This seems to be strange, because
>> in regular Class it works and all methods within that module are also
>> accessible. See the example:
>> 
>> module MyModule
>> MyConstant = 1
>> 
>> def my_method
>>   2
>> end
>> end
>> 
>> describe "including modules" do
>> include MyModule
>> 
>> it "works" do
>>   my_method.should == 2
>>   MyModule::MyConstant.should == 1
>> end
>> 
>> it "doesn't work" do
>>   MyConstant.should == 1
>> end
>> end
>> 
>> Running this simple spec will produce one failure with this message:
>> 1)
>> NameError in 'including modules doesn't work'
>> uninitialized constant MyConstant
>> 
>> Is this an expected behaviour? Is there some other way to access
>> constants from another module without specifying module name within
>> examples?
> 
> That wouldn't work in regular ruby either. You need to run the describe block inside the module / namespace.

I stand corrected. It absolutely does work. Sorry for the duff information.

> 
>> 
>> Best Regards,
>> Jarmo
>> _______________________________________________
>> rspec-users mailing list
>> rspec-users at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
> 
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users



More information about the rspec-users mailing list