Hi all... I am new to rspec. I am testing create action of communities_controller in my application, which is below: def create @community = Community.new(params[:community]) @community.url_title = params[:community][:title].parameterize @community.title = params[:community][:title].strip @community.description = params[:community][:description].strip @community.country_id = params[:referenceid][:country] @community.state_id = params[:referenceid][:state] @community.city_id = params[:referenceid][:city] @community.user_id = current_user.id respond_to do |format| if @community.save format.html { redirect_to :action => "show", :id => @community.url_title} format.xml { render :xml => @community, :status => :created, :location => @community } else format.html { render :action => "new" } format.xml { render :xml => @community.errors, :status => :unprocessable_entity } end end end My test cases are as below:
describe "POST create" do describe "with valid params" do it "assigns a newly created community as @community" do Community.stub(:new).with({'these' => 'params'}) { mock_community(:save => true) } post :create, :community => {'these' => 'params'} assigns(:community).should be(mock_community) end
it "redirects to the created community" do Community.stub(:new) { mock_community(:save => true) } post :create, :community => {} response.should redirect_to(community_url(mock_community)) end end
describe "with invalid params" do it "assigns a newly created but unsaved community as @community" do Community.stub(:new).with({'these' => 'params'}) { mock_community(:save => false) } post :create, :community => {'these' => 'params'} assigns(:community).should be(mock_community) end
it "re-renders the 'new' template" do Community.stub(:new) { mock_community(:save => false) } post :create, :community => {} response.should render_template("new") end end end
I dont know how to test : @community.url_title = params[:community][:title].parameterize I am having following failure: Failure/Error: post :create, :community => {'these' => 'params'} undefined method `parameterize' for nil:NilClass Please help me...