[rspec-users] Standardize environment between specs containing class defs
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
More information about the rspec-users