I am using Expectations and I found something which looks strange, when
you call methods. For instance:
- No problem with:
require ‘expectations’
count = []
Expectations do
expect(0) { count.size }
end
- 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.
Michel D. wrote:
expect(0) { count.size }
end
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 B. (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.
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
Thanks Ola.
Which means that one should not use Expectations when following a story.
At step n, one would have to write again all preceeding steps. And have
them rerun, with quadratic growth… Back to spec.