私は何か間違ったことを理解したようです。クラスがあります
module Spree
class OmnikassaPaymentResponse
#...
# Finds a payment with provided parameters trough ActiveRecord.
def payment(state = :processing)
Spree::Payment.find(:first, :conditions => { :amount => @amount, :order_id => @order_id, :state => state } ) || raise(ActiveRecord::RecordNotFound)
end
end
end
Rspecで指定されているもの:
describe "#payment" do
it 'should try to find a Spree::Payment' do
Spree::Payment.any_instance.stub(:find).and_return(Spree::Payment.new)
Spree::Payment.any_instance.should_receive(:find)
Spree::OmnikassaPaymentResponse.new(@seal, @data).payment
end
end
ただし、これは常に をスローしActiveRecord::RecordNotFound
ます。私は、Spree::Payment のインスタンスが何であれany_instance.stub(:find).and_return()
、どこで a を呼び出しても、必ず何かを返すことを期待していました。#find
しかし、そうではありません。stub.and_return
|| raise(ActiveRecord::RecordNotFound)
私の仮定、私のコードは間違っていますか? 他の何か?