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
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users