On 8/17/07, Andrew WC Brown <[EMAIL PROTECTED]> wrote: > I've been off the rspec for a few months and I'm trying to get back on it. > > 1) > Spec::Mocks::MockExpectationError in 'TicketsController > handling POST /tickets should create a new ticket' > Mock 'Ticket_1001' expected :new with ({}) once, but received it 0 times > ./spec/controllers/tickets_controller_spec.rb:16: > script/spec:4: > > class TicketsController < ApplicationController > > def new > Ticket.new > end > > end > > describe TicketsController, "handling POST /tickets" do > > before do > @ticket = mock_model(Ticket, :to_param => '1', :save => true) > Ticket.stub!(:new).and_return(@ticket) > @params = {} > end > > def do_post > post :create, :ticket => @params > end > > it "should create a new ticket" do > > @ticket.should_receive(:new).with(@params).and_return(@ticket)
This is telling the ticket object to expect new, but it's the Ticket class that will receive it: Ticket.should_receive(:new).with(@params).and_return(@ticket) That should do it. > do_post > end > > end > > Would someone provide with an explanation what I have to do to make this > spec pass? > Peepcode hasn't released their screen cast on rspecing controllers yet ='( > > > > > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users > _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users