Hello,

I retried with the version 2.14. I have this spec :

require 'spec_helper'

describe OrdersController do
  #...
  describe "POST 'create'" do
    subject(:do_post!) { post 'create', params }

context "when the order and the credit card and the payment are valid" do
      before do
        allow(order).to receive(:valid?).and_return(true)
        allow(credit_card).to receive(:valid?).and_return(true)
        allow(payment).to receive(:valid?).and_return(true)
        do_post!
      end

      it { expect(order).to have_received(:save) }
    end
  end
end

And it works.

When I remove the "do_post!", in the context, I have this error :

     Failure/Error: it { expect(order).to have_received(:save) }
       (#<Order:0x007fcde323a308>).save(any args)
           expected: 1 time with any arguments
           received: 0 times with any arguments

Finally, I try to move the "do_post!" in the describe block and I have this :

      Failure/Error: subject(:do_post!) { post 'create', params }
       Double received unexpected message :valid? with (no args)
     # ./app/controllers/orders_controller.rb:6:in `create'
# ./spec/controllers/orders_controller_spec.rb:28:in `block (3 levels) in <top (required)>' # ./spec/controllers/orders_controller_spec.rb:29:in `block (3 levels) in <top (required)>'


Should it working. I had similar spec with the previous versions and it was working.

Thanks!
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to