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

Karl threadhead at gmail.com
Tue Feb 15 12:25:51 EST 2011


In MoneyOrdersController controller:

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

In MoneyOrdersController 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

It always throws 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)

I'm sure the reason is simple, why I am getting this TypeError?


More information about the rspec-users mailing list