繁体   English   中英

Rails Devise令牌认证Rspec JSON API测试会话问题

[英]Rails Devise Token Autentication Rspec JSON API testing session issues

我正在使用Ruby on Rails为移动应用程序构建JSON api。 我有一个像这样的随机游戏功能:

  1. 玩家1请求随机游戏。
  2. 玩家2请求随机游戏。
  3. 由于玩家配对,现在开始游戏。

这是通过/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中发生了什么事情来缓存用户会话?

您可以像这样对身份验证令牌进行存根:

player1.stub(:authentication_token).and_return("test1234")
player2.stub(:authentication_token).and_return("test4321")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM