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

Reply via email to