From: Ola Bini Date: 2008-04-18T17:03:43+09:00 Subject: Re: strange Expectations answer Michel Demazure wrote: > I am using Expectations and I found something which looks strange, when > you call methods. For instance: > > 1. No problem with: > > require 'expectations' > > count = [] > > Expectations do > expect(0) { count.size } > end > > 2. But when you add a second test, the *first one* fails : > > require 'expectations' > > count = [] > > Expectations do > expect(0) { count.size } > end > > count << "a" > > Expectations do > expect(1) { count.size } > end > > The first call to 'count.size' now returns 1. > > I'd like, first to understand, and second to know to use Expectations > when you follow a story like the one above. Thks. > To put it bluntly - you shouldn't do it that way. Expectations collects all expectations in a file and then runs them. Basing your tests on outside variables is not a good idea. Restructure your tests to look like this: Expectations do expect(0) do count = [] count.size end expect(1) do count = [] count << "a" count.size end end Cheers -- Ola Bini (http://ola-bini.blogspot.com) JRuby Core Developer Developer, ThoughtWorks Studios (http://studios.thoughtworks.com) Practical JRuby on Rails (http://apress.com/book/view/9781590598818) "Yields falsehood when quined" yields falsehood when quined.