メソッドをスタブ化し、特定の値を返すように要求しました。ただし、単体テストを実行すると、実際のメソッドが呼び出され、実際の値で生成された値が返されます。
つまり、 get_requisition_number メソッドをスタブして値を返しました1
が、単体テストを実行すると値が返されます2011031100001
単体テスト コード:
it "should have a unique requisition number when saved" do
Requisition.stub(:get_requisition_number).and_return("1")
req1 = Requisition.new
req1.save
req2 = Requisition.new
lambda { req2.save! }.should raise_error(ActiveRecord::ActiveRecordError)
end
get_requisition_number メソッドは、save メソッドの実行時に呼び出されます。スタブから返されるはずだと思い1
ます。ただし、 のような日付固有の値を返します2011031100001
。これは、実際のメソッドを実行していることを意味します。