On Sat, Jan 10, 2009 at 12:59 PM, David Richards <dricha...@showcase60.com> wrote: > I had, for historic reasons, a setup on a group of specs: > > before(:all) do > @contents = [%w(this that), %w(this other)] > FasterCSV.stub!(:open).and_return(@contents) > @filename = 'test_filename' > end > > When I ran the single file (spec spec/transformer/csv_spec.rb), all my > specs passed. When I ran the whole project's specs together (spec > spec/), these failed. Changing before(:all) to before(:each) worked, > but for reasons that are not clear to me. The before(:all) approach > didn't work because the FasterCSV stub wasn't being set. > > Can someone explain why there would be different behavior between > running one file and many files and before(:each) vs. before(:all)? > As far as I understand it, I thought before(:all) was supposed to > always run before a group of specs. Is it possible that a before > (:all) doesn't work right when calling multiple/all specs at the same > time?
Mocks and stubs get cleared out after each example, so you need to set them before each example. before(:all) should run once per group regardless of whether you're loading one file or many. HTH, David > > Thanks > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users > _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users