2017-05-23 14 views
0

コントローラで使用しているモデルメソッドをスタブしようとしていますが、動作していないようです。誰かが私はそれをrspecコントローラテストのモデルメソッドをスタブする方法

ユーザーコントローラ

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 

答えて

0

代わりstuballowアプローチを試してみてください。例:allow(:admin).to receive(:internal_admin?).and_return(true)

関連する問題