[rspec-users] how can this pass?
aslak hellesoy
aslak.hellesoy at gmail.com
Sun Feb 8 20:56:47 EST 2009
On Mon, Feb 9, 2009 at 2:35 AM, Sergio Bayona <lists at ruby-forum.com> wrote:
> how could this test pass?
>
> I have:
>
> class PropertiesController < ApplicationController
> def show
> @property = Property.non_existing_method #causes a method missing
> error
> end
> end
>
>
> describe PropertiesController do
> def mock_property(stubs={})
> @mock_property ||= mock_model(Property, stubs)
> end
>
> describe "responding to GET show" do
> it "should expose the requested property as @property" do
> Property.should_receive(:non_existing_method).and_return(mock_property)
> get :show, :id => "37"
> assigns[:property].should equal(mock_property)
> end
> end
> end
>
> SB-MacBook-Pro:test sb$ ruby
> ./spec/controllers/properties_controller_spec.rb
> .
>
> Finished in 0.134667 seconds
>
> 1 example, 0 failures
>
>
> why zero failures? more specifically, why would :non_existing_method
> return mock_property?
Because you have stubbed the class method Property#non_existing_method with:
Property.should_receive(:non_existing_method).and_return(mock_property)
It doesn't make any difference whether this method is already defined
or not. Once the stub is set up, calls to the stubbed method will
return what you told it to return.
> and why would the assigns[:property] be equal to
> mock_property?
Because your controller's #show method assigns @property with the
value returned from Property#non_existing_method (which you stubbed).
> did I eat some bad mushrooms?
>
That I don't know. Why do you think this behaviour is strange/hallucinating?
Aslak
> Sergio
> --
> Posted via http://www.ruby-forum.com/.
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>
--
Aslak (::)
More information about the rspec-users
mailing list