How can I spec the 3rd line of my controller?
update_successful, error_msg = update_channels_association
def create
@user = User.new(get_param(:user, :hash))
if @user.save
update_successful, error_msg = update_channels_association
set_flash_if update_successful,
:resource_successfully_created.t(:resource => :user.t[:one]), error_msg
redirect_to @user
else
render :action => :new
end
end
My spec
describe UsersController do
describe “POST create” do
##############################################################
should_require_login :post, :create
##############################################################
describe "authenticated user" do
##############################################################
before(:each) do
login_as_user
@user = mock_model(User, :save => nil)
User.stub!(:new).and_return(@user)
@params = {'name' => 'Mary'}
end
##############################################################
def do_post
post :create
end
##############################################################
it "should build a new user" do
User.should_receive(:new).with(@params).and_return(@user)
post :create, :user => @params
end
##############################################################
it "should save the user" do
@user.should_receive(:save)
do_post
end
##############################################################
context "when the user saves successfully" do
before(:each) do
@user.stub!(:save).and_return true
controller.should_receive(:update_channels_association)
end
it "should set a flash[:notice] user" do
do_post
flash[:notice].should ==
:resource_successfully_created.t(:resource => :user.t[:one])
end
The error
‘UsersController POST create authenticated user when the user saves
successfully should set a flash[:notice] user’ FAILED
expected: “Usu�rio criado(a) com sucesso.”,
got: nil (using ==)
I know it is missing to verify the local variable update_successful.
If anyone can help me.
Cheers
EM
View this message in context:
http://www.nabble.com/How-can-I-spec-protect-method-tp25995877p25995877.html
Sent from the rspec-users mailing list archive at Nabble.com.