I'm new to RSpec and as I was writing a spec test I came across a problem where the spec tests are passing even though the return values are different than what I specified in my expectations. For example:
@q= Query.new @q.should_receive(:number_to_name).with(0).and_return("no such boro") @q.number_to_name(0)
This passes even though the Query.number_to_name is returning a different value when I call it with 0. I don't understand what to make of this.
preguntado el 09 de enero de 11 a las 01:01
should_receive is part of rspec's mocking tools.
@q.should_receive(:number_to_name).with(0).and_return("no such boro")
You are mocking
@q, setting an expectation that
number_to_name will be called with an argument of
0 and that the mock will return
"no such boro". Executing
@q.number_to_name(0) then satisfies that expectation by calling the mock. Your implementation of
number_to_name has never been called and is not being tested.