【发布时间】:2016-01-24 22:55:37
【问题描述】:
我目前正在尝试为 Rails 中的用户身份验证编写单元测试,但我一直遇到问题。
我正在尝试测试以下方法:
def reset_session_token!
self.session_token = User.generate_session_token
self.save!
self.session_token
end
使用以下单元测试:
let(:valid_user) { User.new(user_name: 'Name', password: 'abcdefghijkl')}
it "should set the session_token" do
valid_user.reset_session_token!
expect(valid_user.session_token).not_to be_nil
end
但测试失败并出现错误Validation failed: User name has already been taken。我怀疑这是因为 reset_session_token! 在用户实例上调用 save ,但这是该方法正常工作所必需的。我怎样才能解决这个问题?
【问题讨论】:
-
你可以
stub方法save! -
很酷!谢谢!
标签: ruby-on-rails ruby unit-testing rspec