Rspec:参数个数错误(1表示0)

时间:2015-08-06 10:06:26

标签: ruby-on-rails ruby rspec

这是一段代码,它会在第5行引发错误"错误的args数(1为0):

describe 'PATCH #update' do
  context 'title is empty' do
    it 'should not update page' do
      page = create(:page)
      patch :update, { id: page.id, page: FactoryGirl.attributes_for(:page, title: nil) }, format: :json
      expect(response).to have_http_status(:unprocessable_entity)
    end
  end
end

Rails控制器:

def update
    if @page.update(page_params)
      render json: @page
    else
      status :unprocessable_entity
    end
  end

其他测试工作得很好,但这对于#update's else来说并不合适。 广东话'得到它,问题是什么,我该如何解决这个问题? (功能正常,但测试失败)

1 个答案:

答案 0 :(得分:1)

您需要将update方法更改为

def update
 if @page.update(page_params)
   render json: @page
 else
   render json: @page.errors, status: :unprocessable_entity
 end
end