I’m having troubles to test methods on controllers, specially this
method:
def update
@property = @user.properties.find(params[:id])
if params[:property][:owner_id].blank?
@owner = Owner.create_from_user(@user)
@property.owner = @owner
end
if @property.update_attributes(params[:property])
flash[:notice] = 'Imóvel atualizado com sucesso.'
redirect_to user_property_path(@user)
else
render :action => "edit"
end
end
This method is pretty standard, except for the line ==> if
params[:property][:owner_id].blank?
In my spec file I try this:
it "should expose the requested property as @property" do
@property = mock_model(Property, :owner=>:owner, :owner=
=>:owner,
:update_attributes => true)
Property.stub!(:find).and_return(@property)
Owner.stub!(:create_from_user)
put :update, :id => "1"
assigns(:property).should equal(@property)
end
But get this error:
The error occurred while evaluating nil.[]
The problem is params and I don’t know how is the best way to simulete
params hash …
Anyone can help?
Thanks.
Daniel L.  Area Criações
Design, Websites e Sistemas Web
Visite: http://www.areacriacoes.com.br/projects
http://blog.areacriacoes.com.br/
55 (31) 3077-4560 / 55 (31) 8808-8748 / 55 (31) 8737-7501