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