我正在使用 Ruby on Rails 为移动应用程序构建 JSON api。我有一个像这样工作的随机游戏功能:
- 玩家 1 请求随机游戏。
- 玩家 2 请求随机游戏。
- 由于玩家配对,游戏现在开始。
这是由 /games/random_game.json 调用完成的。
rspec 测试如下所示:
it "should start a random game" do
post "/api/v1/games/random_game.json",
:token => player1.authentication_token,
:game_type => "tictactoe"
post "/api/v1/games/random_game.json",
:token => player2.authentication_token,
:game_type => "tictactoe"
parsed_body = JSON.parse(last_response.body)
parsed_body.has_key?("gamestate").should == true
end
预期:第一次调用应该返回状态:成功第二次调用应该返回新游戏的 json
怎么了:
第一次调用返回状态:成功
第二次调用返回状态:失败错误:“玩家不能有两个相同类型的未决游戏”
在随机游戏方法中,我抛出了用户的打印声明。它始终是玩家一号。
在随机游戏方法中,我看到了参数的打印语句。它发布了两个不同的令牌。
最糟糕的是,如果我使用 CURL 进行这些相同的调用,它会成功。
Rspec 中是否发生了缓存用户会话的事情?