[rspec-users] Standardize environment between specs containing class defs

Dan North dan at tastapod.com
Fri Sep 21 05:42:28 EDT 2007

Although it would be nice (and not too difficult) to have the example 
runner intercept any class creation (and perhaps other global/constant 
definitions) and undef them after each example.

It certainly seems reasonable to have any defined classes go away after 
an example.

aslak hellesoy wrote:
> You can have a global after block in your spec_helper.rb that
> undefines all such constants. Then you just have to remember to add
> these constants to some global array whenever you define them.
> a
> On 9/21/07, Matt Margolis <matt at mattmargolis.net> wrote:
>> I have some specs that involve the use of eval and class definitions to
>> test code generation.  I want to always start with a clean slate so none
>> of my tests fail or succeed incorrectly due to artifacts left over from
>> previous specs.
>> Example of my situation
>>   Spec 1 defines
>>     class Fish
>>     class Cod < Fish
>>   Spec 2 defines
>>     class Animal
>>     class Cod < Animal
>> In this situation the second spec will fail since Cod was previously
>> defined to be a subclass of Fish and you can not change the superclass
>> of a subclass in ruby without causing an exception.
>> I want the resetting to be as automatic as possible since calling
>> remove_constant on every class my code defines after each spec is a real
>> pain since this situation is going to crop up in lots of different specs
>> and describe blocks.
>> Thank you,
>> Matt Margolis
>> _______________________________________________
>> 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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/rspec-users/attachments/20070921/7f9674b4/attachment.html 

More information about the rspec-users mailing list