私は注文モデルを持っています。これはhas_many
支払いとチェックアウトコントローラーです。支払いが存在しない場合、コントローラーは新しい支払いを作成する必要があります。
private
# Helper method allows calling from several controller-callbacks.
def add_payment_if_not_exists
if @order.payments.empty?
Payment.create(...)
end
end
そして今、私はこの振る舞いをCheckoutControllerSpec
it 'should not add a payment when already added' do
@order = mock_model(Order)
@order.payments << mock_model(Payment).as_null_object
Payment.should_not_receive(:new)
post :homecoming, @params
end
しかし、これはスローします
Failure/Error: @order.payments << mock_model(Payment).as_null_object
Mock "Order_1003" received unexpected message :payments with (no args)
どういうわけか、私はまだrspecsのスタブ化とモック化の概念を完全には理解していません。私は何を間違っていますか?