You can do something like in rspec/spec/spec/mocks/stub_spec.rb where the class is defined in before(:each). This way your specs aren't dependent on an external class definition.
Carl On Sep 10, 2007, at 3:12 PM, Pat Maddox wrote: > I'm writing an acts_as_* plugin and am trying to BDD it. Ideally my > specs would look like: > > describe ActsAsCloneable, " basic cloning" do > load_example_classes > School.class_eval do > acts_as_cloneable > end > > before(:each) do > @old_school = School.create! :name => "Baylake Pines", :city => > "Virginia Beach", :guid => "abc123" > @clone = @old_school.build_clone > end > > it "should preserve the attributes" do > @clone.name.should == "Baylake Pines" > @clone.city.should == "Virginia Beach" > @clone.guid.should == "abc123" > end > > it "should not clone the id" do > @clone.id.should be_blank > end > end > > describe ActsAsCloneable, " while specifying an attribute not to > clone" do > load_example_classes > School.class_eval do > acts_as_cloneable :except => :guid > end > > before(:each) do > @old_school = School.create! :name => "Baylake Pines", :city => > "Virginia Beach", :guid => "abc123" > @clone = @old_school.build_clone > end > > it "should preserve the regular attributes" do > @clone.name.should == "Baylake Pines" > @clone.city.should == "Virginia Beach" > end > > it "should not clone the specified attribute" do > @clone.guid.should be_blank > end > > it "should not clone the uncloned attribute" do > @clone.guid.should be_blank > end > end > > load_example_classes is a helper method that just defines the AR::base > classes. The undefs would go there too. > > Unfortunately what's happening is that the definition from the second > spec is being used for the first spec...so when running both specs, > the first fails. However if I comment out the second spec, the first > one passes. > > I've tried using remove_const and Object.remove_class. Neither seems > to work. I need to start with a fresh class definition before each > description is run...how can I do that? > > Pat > _______________________________________________ > rspec-users mailing list > [email protected] > http://rubyforge.org/mailman/listinfo/rspec-users _______________________________________________ rspec-users mailing list [email protected] http://rubyforge.org/mailman/listinfo/rspec-users
