我都在试图理解这里发生的事情:
我Devise.friendly_token
在User
工厂使用。
FactoryGirl.define do
factory :user do
email "user@example.com"
password "secret"
authentication_token Devise.friendly_token
end
end
在一些测试中,我使用工厂如下:
require 'spec_helper'
describe SessionsController do
before do
@user = User.gen!
puts "Token = #{@user.authentication_token}" # <--- debugging output
end
describe "#create" do
context "when sending ..." do
it "renders a json hash ..." do
api_sign_in @user
expect(last_response.status).to eq(201)
end
end
context "when sending ..." do
it "renders a json hash ..." do
user = User.gen!(email: "invalid@email.com")
puts "Token2 = #{user.authentication_token}" # <--- debugging output
api_sign_in user
expect(last_response.status).to eq(422)
end
end
end
describe "#destroy" do
context "when sending ..." do
it "renders a json hash ..." do
api_sign_out @user
expect(last_response.status).to eq(200)
end
end
end
end
调试输出显示令牌在每次调用时都是相同的哈希值。奇怪的!当我在控制台中进行测试时,它会在每次执行Devise.friendly_token
时生成一个随机散列。这就是我期望看到的实现。
我想有一个主要的设计问题......请帮帮我。