thanks Maurício, I read your link. It worked.
2008/7/23 Maurício Linhares <[EMAIL PROTECTED]>: > The "should_receive" should appear before the "post :create" (look at > this for a better explanation -> > http://rubyforge.org/pipermail/rspec-users/2008-June/007342.html ) > > it 'should not save the issue' do > @issue = mock_model(Issue) > @issue.stub!(:save).and_return(:false) > > Issue.stub!(:new).and_return(@issue) > @issue.should_receive(:save).and_return(:false) > # you should define the "should receive" before calling "post :create" > > post :create, { :issue => {:title => 'some > title', :description => ''}} > end > > On Tue, Jul 22, 2008 at 10:36 PM, Camilo Torres <[EMAIL PROTECTED]> wrote: >> >> Hello, I am learning rspec/rspec-rails and ruby on rails. >> >> Controller: >> class IssuesController < ApplicationController >> def index >> >> end >> >> def new >> @issue = Issue.new >> end >> >> def create >> @issue = Issue.new(params[:issue]) >> @issue.save >> end >> end >> >> Spec: >> require File.expand_path(File.join(File.dirname(__FILE__), >> '../spec_helper.rb')) >> >> describe IssuesController do >> it 'should sucess on index' do >> get :index >> response.should be_success >> end >> >> describe 'create new issue' do >> it 'should success on new' do >> get :new >> response.should be_success >> end >> >> it 'should pass a new Issue to the view' do >> issue = mock_model(Issue) >> Issue.stub!(:new).and_return(issue) >> get :new >> assigns[:issue].should == issue >> end >> end >> >> describe 'saving with right data' do >> it 'should save the issue' do >> issue = mock_model(Issue) >> Issue.stub!(:new).and_return(issue) >> issue.stub!(:save).and_return(:true) >> post :create, { :issue => {:title => 'some title', >> :description => >> 'some more data to describe'}} >> assigns[:issue].should == issue >> end >> end >> >> describe 'when saving wrong data' do >> # before(:each) do >> # @issue = mock_model(Issue) >> # @issue.stub!(:save).and_return(:false) >> # Issue.stub!(:new).and_return(@issue) >> # end >> >> # def post_create >> # post :create, { :issue => {:title => 'some title', >> :description => >> 'some more data to describe'}} >> # end >> >> it 'should not save the issue' do >> @issue = mock_model(Issue) >> @issue.stub!(:save).and_return(:false) >> Issue.stub!(:new).and_return(@issue) >> >> post :create, { :issue => {:title => 'some title', >> :description => ''}} >> >> @issue.should_receive(:save).and_return(:false) >> end >> >> # it 'should flash the failure to save' do >> >> # end >> end >> end >> >> Error: >> F.... >> >> 1) >> Spec::Mocks::MockExpectationError in 'IssuesController when saving >> wrong data should not save the issue' >> Mock 'Issue_1001' expected :save with (any args) once, but received it 0 >> times >> spec/controllers/issues_controler_spec.rb:51: >> spec/controllers/issues_controler_spec.rb:3: >> >> Finished in 0.282526 seconds >> >> 5 examples, 1 failure >> >> >> >> I am running script/autospec. >> >> ¿What is wrong? I don't understand why this spec is not passing. I >> have tried before(:each) and a helper method, but got the same. >> >> Please, help. >> _______________________________________________ >> rspec-users mailing list >> rspec-users@rubyforge.org >> http://rubyforge.org/mailman/listinfo/rspec-users > > > -- > Maurício Linhares > http://alinhavado.wordpress.com/ (pt-br) | http://blog.codevader.com/ (en) > João Pessoa, PB, +55 83 8867-7208 > _______________________________________________ > 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