On Jun 24, 2011, at 7:17 AM, John Feminella wrote: > hello, > > I have a monolithic test that looks like this: > > ====== > describe Model do > describe "#method" do > let!(:expensive) { ... } > > it "should do a lot of things" do > expensive.should be_foo > expensive.should be_bar > expensive.should be_baz > end > end > end > ====== > > I would like to refactor the large spec into smaller ones: > > ====== > it "should be foo" { expensive.should be_foo } > it "should be bar" { expensive.should be_bar } > it "should be baz" { expensive.should be_baz } > ====== > > However, doing this slows down the tests a bit, because the > `expensive` method requires hitting the database. > > Suppose that I can guarantee that none of the tests or the methods > they call will be modifying the object returned by the `expensive` > method. Is there a way to tell RSpec to memoize the `expensive` result > across the context, and not just across an individual test run? > > Alternatively, should I just use before(:all) for this?
Just use before(:all). That's what it is designed for, and it tells you that you have stuff to clean up in an after(:all) hook. HTH, David _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users