Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 rspec控制器测试的存根模型方法_Ruby On Rails 3_Rspec_Rspec Rails - Fatal编程技术网

Ruby on rails 3 rspec控制器测试的存根模型方法

Ruby on rails 3 rspec控制器测试的存根模型方法,ruby-on-rails-3,rspec,rspec-rails,Ruby On Rails 3,Rspec,Rspec Rails,我正在尝试在我的控制器中使用的模型方法存根,但它似乎从未起作用。有人能告诉我正确的方法吗 用户控制器 if current_user.user_token @user = @account.users.find(params[:id]) @user.revoke_seat(:admin, current_user) render :template => "/admin/users/revoke_seat" else render

我正在尝试在我的控制器中使用的模型方法存根,但它似乎从未起作用。有人能告诉我正确的方法吗

用户控制器

 if current_user.user_token
      @user = @account.users.find(params[:id])
      @user.revoke_seat(:admin, current_user)
      render :template => "/admin/users/revoke_seat"
    else
      render :js => "window.location.href='#{server_url}/oauth/authorize?response_type=code&client_id=#{client_id}&state=#{request.referrer}?auto_revoke_seat=true&redirect_uri=#{auth_service_callback_url}";
    end
Rspec

 before do
    users(:admin).stub(:internal_admin?).and_return(true)
    login_as :admin
    user.stub(:user_token).and_return("123123")# THIS IS NOT WORKING
  end

  it "should redirect to authentication service to generate access token" do
      expect(user).to receive(:user_token).and_return(true)
      xhr :put, :revoke_seat, account_id: account.id, id: user.id
      expect(response).to render_template('admin/users/revoke_seat')
      expect(assigns(:account)).to eq(account)
      expect(assigns(:user)).to eq(user)
    end

您可以尝试
allow
方法,而不是
stub
。例如,
allow(:admin)。接收(:internal\u admin?)和返回(true)