小编Dre*_*w B的帖子

RSPEC:如何测试控制器操作是否返回了 JSON Web 令牌

我正在使用 Devise 和 JWT 来验证我正在编写的项目中的用户。我很难弄清楚如何编写一个有用的测试来期待 JWT response.body(因为每个测试都是加密的)。

我唯一能想到的就是测试它们的结构是否应该是 JWT(一个 3 段,'.'分隔字符串)。

有没有人遇到过测试随机/散列返回并提出更好的解决方案?

describe SessionTokensController, type: :controller do
  let(:current_user) { FactoryGirl.create(:user) }

  before(:each) do
    sign_in current_user
  end

  describe '#create' do
    it 'responds with a JWT' do
      post :create
      token = JSON.parse(response.body)['token']

      expect(token).to be_kind_of(String)
      segments = token.split('.')
      expect(segments.size).to eql(3)
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails jwt

5
推荐指数
1
解决办法
3326
查看次数

标签 统计

jwt ×1

rspec ×1

ruby-on-rails ×1