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 &#39;TicketsController handling POST /tickets should create a new ticket&#39;
<br>Mock &#39;Class&#39; 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 &#39;TicketsController handling POST /tickets should create a new ticket&#39;
<br>Mock &#39;Class&#39; 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> &lt;<a href="mailto:dchelimsky@gmail.com">dchelimsky@gmail.com
</a>&gt; 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 &lt;<a href="mailto:omen.king@gmail.com">omen.king@gmail.com
</a>&gt; wrote:<br>&gt; I&#39;ve been off the rspec for a few months and I&#39;m trying to get back on it.<br>&gt;<br>&gt; 1)<br>&gt;&nbsp;&nbsp;Spec::Mocks::MockExpectationError in &#39;TicketsController<br>&gt; handling POST /tickets should create a new ticket&#39;
<br>&gt;&nbsp;&nbsp;Mock &#39;Ticket_1001&#39; expected :new with ({}) once, but received it 0 times<br>&gt;&nbsp;&nbsp;./spec/controllers/tickets_controller_spec.rb:16:<br>&gt;&nbsp;&nbsp;script/spec:4:<br>&gt;<br>&gt; class TicketsController &lt; ApplicationController
<br>&gt;<br>&gt;&nbsp;&nbsp; def new<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Ticket.new<br>&gt;&nbsp;&nbsp; end<br>&gt;<br>&gt; end<br>&gt;<br>&gt; describe TicketsController, &quot;handling POST /tickets&quot; do<br>&gt;<br>&gt;&nbsp;&nbsp; before do<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; @ticket = mock_model(Ticket, :to_param =&gt; &#39;1&#39;, :save =&gt; true)
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Ticket.stub!(:new).and_return(@ticket)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; @params = {}<br>&gt;&nbsp;&nbsp; end<br>&gt;<br>&gt;&nbsp;&nbsp; def do_post<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; post :create, :ticket =&gt; @params<br>&gt;&nbsp;&nbsp; end<br>&gt;<br>&gt;&nbsp;&nbsp; it &quot;should create a new ticket&quot; do
<br>&gt;<br>&gt; @ticket.should_receive(:new).with(@params).and_return(@ticket)<br><br>This is telling the ticket object to expect new, but it&#39;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>&gt;&nbsp;&nbsp;&nbsp;&nbsp; do_post<br>&gt;&nbsp;&nbsp; end<br>&gt;<br>&gt; end<br>&gt;<br>&gt; Would someone provide with an explanation what I have to do to make this<br>&gt; spec pass?<br>&gt; Peepcode hasn&#39;t released their screen cast on rspecing controllers yet =&#39;(
<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; _______________________________________________<br>&gt; rspec-users mailing list<br>&gt; <a href="mailto:rspec-users@rubyforge.org">rspec-users@rubyforge.org</a><br>&gt; <a href="http://rubyforge.org/mailman/listinfo/rspec-users">
http://rubyforge.org/mailman/listinfo/rspec-users</a><br>&gt;<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