0
我試圖用RSpec測試我的控制器在rails中,但它不是調用我所做的一個模擬,我不知道爲什麼。RSpec模擬沒有被調用belongs_to協會
我的模型有一個用戶類,一個遊戲類和一個玩家類,它屬於一個用戶和一個遊戲。
我想測試這樣的事情
player = Player.find_by_id(params[:id])
if player != nil && player.user == current_user && player.game.remove_player?(player)
redirect_to games_url
但我似乎無法remove_player嘲笑?正確。我正在做的幾乎是這樣的:
@player = double("player")
Player.should_receive(:find_by_id).with(mock_player_id.to_s).and_return { @gplayer }
@player.stub(:user).and_return(@current_user)
fakeGame = double("game")
@player.stub(:game).and_return(fakeGame)
fakeGame.should_receive(:remove_player?).with(@player).and_return(true)
我得到的錯誤說remove_player?從未被召喚過。任何想法我做錯了什麼?我無法確定它是否到達player.user == curent_user,但它調用find_by_id而不是抱怨它,所以我會想象它必須達到用戶檢查。
編輯:@current_user不等於CURRENT_USER
而且,我試圖與
fakeUser = double("user")
@player.should_receive(:user).and_return(@current_user)
更換3號線它給我的錯誤說:用戶不叫。
男人不敢相信我花了2個小時尋找錯誤的東西,從來沒有發現。謝謝。對於愚蠢的問題感到抱歉。 – bdwain 2013-04-25 17:18:45