[rspec-users] TypeError: can't convert RSpec::Mocks::Mock to Hash

Karl Smith threadhead at gmail.com
Wed Feb 16 17:07:50 EST 2011


# controller
def create
  @money_order = current_user.money_orders.build(params[:money_order])
  if @money_order.save
    @money_orders = current_user.money_orders.staged
    flash.now[:msg_ok] = "Added money order for: #{number_to_currency(@money_order.amount)}"
  end
  respond_with(@money_order)
end


#controller spec
describe "POST create" do
  describe "with valid params" do
    it "assigns a newly created money_order as @money_order" do
      MoneyOrder.stub(:new).with({'these' => 'params'}) { mock_money_order(:save => true) }
      post :create, :money_order => {'these' => 'params'}
      assigns(:money_order).should be(mock_money_order)
    end
  end
end


#returns this error
Failure/Error: post :create, :money_order => {'these' => 'params'}
TypeError: can't convert RSpec::Mocks::Mock to Hash (RSpec::Mocks::Mock#to_hash gives RSpec::Mocks::Mock)

#gems
rails (3.0.4)
rspec (2.5.0)
rspec-core (2.5.1)
rspec-expectations (2.5.0)
rspec-mocks (2.5.0)
rspec-rails (2.5.0)
... and a few others

Must be missing something simple, but I just don't see it. What is causing the error?


More information about the rspec-users mailing list