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

aslak hellesoy aslak.hellesoy at gmail.com
Fri Sep 21 02:53:32 EDT 2007

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.


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

More information about the rspec-users mailing list