Doug
2010-Jul-03 06:20 UTC
[rspec-users] rspec controller test strange error: undefined method `call'' for nil:NilClass
must be doing something dumb....
not sure, but the ''call'' appears to be on the block.call when
the
respond_to block gets executed.
straight forward "channels" resource with a ''create''
action.... only
new thing is just assigning the current_user to the model.
def create
@channel = Channel.new(params[:channel])
@channel.user = @user
respond_to do |format|
if @channel.save
flash[:notice] = ''Channel was successfully created.''
redirect_to(@channel)
else
flash[:error] = ''Error saving Channel.''
render :action => "new"
end
end
end
--------
modifying the scaffold spec like this
produces strange
def mock_channel(stubs={})
@mock_channel ||= mock_model(Channel, stubs)
end
def mock_user(stubs={})
@mock_user ||= mock_model(User, stubs)
end
before(:each) do
@mock_user = mock_user
controller.stub(:current_user).and_return @mock_user
end
describe "POST create" do
describe "with valid params" do
it "assigns a newly created channel as @channel" do
mock_channel(:save => true)
@mock_channel.should_receive(:user=).with(@mock_user)
Channel.stub(:new).with({''these'' =>
''params''}).and_return(mock_channel)
debugger
post :create, :channel => {:these => ''params''}
assigns[:channel].should equal(mock_channel)
end
------
it fails on the post :create line ....reporting
undefined method `call'' for nil:NilClass
at .../.rvm/gems/ruby-1.8.7-p249/gems/activesupport-2.3.5/lib/
active_support/whiny_nil.rb:52
raise_nil_warning_for klass, method, caller
51 else
52 super
53 end
54 end
another clue perhaps is that if you remove the :save => true stub
option, then it works ...but fails at the
if @channel.save line .....reporting
Mock "Channel_1002" received unexpected message :save with (no args)
thanks in advance
Maybe Matching Threads
- undefined method `protocol' for nil:NilClass
- undefined method `assigns' and undefined method `post'
- Authlogic + Rails3 - undefined method `Login' for nil:NilClass
- request.format = :mobile causes error "undefined method `ref' for nil:NilClass"
- using OpenPGP gem and getting "out of range error"
