I replaced:<br><br>@ticket.should_receive(:new).with(@params).and_return(@ticket)<br><br>with<br><br>Ticket.should_receive(:new).with(@params).and_return(@ticket)<br><br>Similar Error<br><br>1)<br>Spec::Mocks::MockExpectationError in 'TicketsController handling POST /tickets should create a new ticket'
<br>Mock 'Class' expected :new with ({}) once, but received it 0 times<br>./spec/controllers/tickets_controller_spec.rb:16:<br><br>If I omit @params = {} then I get the error as following<br><br>1)<br>Spec::Mocks::MockExpectationError in 'TicketsController handling POST /tickets should create a new ticket'
<br>Mock 'Class' expected :new with (any args) once, but received it 0 times<br>./spec/controllers/tickets_controller_spec.rb:16:<br><br>So its not receiving the new method at all even though I clearly called it.<br>
Could it be possible that the issue is with the actual Ticket model itself?<br><br><div><span class="gmail_quote">On 8/17/07, <b class="gmail_sendername">David Chelimsky</b> <<a href="mailto:dchelimsky@gmail.com">dchelimsky@gmail.com
</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">On 8/17/07, Andrew WC Brown <<a href="mailto:omen.king@gmail.com">omen.king@gmail.com
</a>> wrote:<br>> I've been off the rspec for a few months and I'm trying to get back on it.<br>><br>> 1)<br>> Spec::Mocks::MockExpectationError in 'TicketsController<br>> handling POST /tickets should create a new ticket'
<br>> Mock 'Ticket_1001' expected :new with ({}) once, but received it 0 times<br>> ./spec/controllers/tickets_controller_spec.rb:16:<br>> script/spec:4:<br>><br>> class TicketsController < ApplicationController
<br>><br>> def new<br>> Ticket.new<br>> end<br>><br>> end<br>><br>> describe TicketsController, "handling POST /tickets" do<br>><br>> before do<br>> @ticket = mock_model(Ticket, :to_param => '1', :save => true)
<br>> Ticket.stub!(:new).and_return(@ticket)<br>> @params = {}<br>> end<br>><br>> def do_post<br>> post :create, :ticket => @params<br>> end<br>><br>> it "should create a new ticket" do
<br>><br>> @ticket.should_receive(:new).with(@params).and_return(@ticket)<br><br>This is telling the ticket object to expect new, but it's the Ticket<br>class that will receive it:<br><br>Ticket.should_receive(:new).with(@params).and_return(@ticket)
<br><br>That should do it.<br><br>> do_post<br>> end<br>><br>> end<br>><br>> Would someone provide with an explanation what I have to do to make this<br>> spec pass?<br>> Peepcode hasn't released their screen cast on rspecing controllers yet ='(
<br>><br>><br>><br>><br>><br>> _______________________________________________<br>> rspec-users mailing list<br>> <a href="mailto:rspec-users@rubyforge.org">rspec-users@rubyforge.org</a><br>> <a href="http://rubyforge.org/mailman/listinfo/rspec-users">
http://rubyforge.org/mailman/listinfo/rspec-users</a><br>><br>_______________________________________________<br>rspec-users mailing list<br><a href="mailto:rspec-users@rubyforge.org">rspec-users@rubyforge.org</a><br><a href="http://rubyforge.org/mailman/listinfo/rspec-users">
http://rubyforge.org/mailman/listinfo/rspec-users</a><br></blockquote></div><br><br clear="all"><br>-- <br>Monsterbox Productions<br>putting small businesses on-line<br><br>1319 Victoria Avenue East<br>Thunder Bay, Ontario P7C 1C3
<br>Canada<br><br>Andrew WC Brown<br>web-developer and owner<br><a href="mailto:andrew@monsterboxpro.com">andrew@monsterboxpro.com</a><br>P: 807-626-9009<br>F: 807-624-2705