The spec
--------------------------------------------------------------------------------------------------------------------------------------------------------
it "should expose a newly created logo as @logo" do
  Logo.should_receive(:new).with({'these' =>
'params'}).and_return(mock_logo(:save => true))
  Logo.should_receive(:company=).with(mock_model(Company))
  post :create, :logo => {:these => 'params'}
  assigns(:logo).should equal(mock_logo)
end


The code:
--------------------------------------------------------------------------------------------------------------------------------------------------------
def create
  @logo = Logo.new(params[:logo])
  @logo.company = current_user.company
  puts current_user.full_name
  if @logo.save
    flash[:notice] = 'You logo was successfully uploaded.'
    redirect_to logo_setting_path
  else
    render :action => logo_setting_path
  end
end

And the error:
--------------------------------------------------------------------------------------------------------------------------------------------------------
Spec::Mocks::MockExpectationError in 'LogosController responding to POST
create
with valid params should expose a newly created logo as @logo'
Mock 'Logo_1001' received unexpected message :company= with
(#<Company:0x219a800
 @name="Company_1">)



Question:
How could I mock a company= methond on Logo?
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to