2

我系统中的路线是:

user_show GET /user/show(.:format)  user#show. 

控制器代码为:

def show
    @user = User.find(params[:id])
    respond_to do |format|
        format.html # show.html.erb
        format.json { render json: @user}
    end
end

_spec.rb

describe 'GET #show' do
    it 'should return success' do
        get :show, id:@user.id
        expect(response).to be_success
    end
end

结果是:

失败/错误:expect(response).to be_success

预期成功?返回真,得到假

在浏览器中,当我输入 xxx/user/show 时,它会出错。

ActiveRecord::RecordNotFound in UserController#show

但是如果我输入 xxx/user/show?id=31,它会显示 id=31 的用户!!

感谢@Alex Wayne,我在这里添加了更多信息:我检查了 routes.rb 文件:

  get "user/show"
  get "user/index"
  get "user/delete"
  get "user/edit"
  post "user/update"
  resource :users, :path => :user, :as => :user

我个人认为我的队友不应该根据Rails Routing写下“get user/show, get user/index....” 。但我无法更改他们的代码。那么,有人知道如何测试 user/show?id=xxx 吗?非常感谢~!!!!

4

0 回答 0