Rails教程:在测试环境中重新定义BCrypt成本因子

时间:2013-03-05 17:02:27

标签: ruby-on-rails-3 railstutorial.org

我是Rails的新手,并遵循Michael hartl的Ruby on Rails教程。

按照清单7.11,在测试环境中重新定义BCrypt成本因子:

#config/environments/test.rb
SampleApp::Application.configure do
.
.
.
# Speed up tests by lowering BCrypt's cost function. 
require 'bcrypt'
  silence_warnings do
    BCrypt::Engine::DEFAULT_COST = BCrypt::Engine::MIN_COST
  end
end

每次运行Rspec时都会收到这些警告:

/Users/stonefruit/.rvm/gems/ruby-1.9.3-p385/gems/bcrypt-ruby-3.0.1/lib/bcrypt.rb:28: warning: already initialized constant DEFAULT_COST
/Users/stonefruit/.rvm/gems/ruby-1.9.3-p385/gems/bcrypt-ruby-3.0.1/lib/bcrypt.rb:30: warning: already initialized constant MIN_COST
/Users/stonefruit/.rvm/gems/ruby-1.9.3-p385/gems/bcrypt-ruby-3.0.1/lib/bcrypt.rb:32: warning: already initialized constant MAX_SALT_LENGTH

我是否知道这些警告是否重要?另外,'silence_warnings'是否应该对警告做任何事情?

谢谢!

编辑:我提供的商家信息中有一个拼写错误。已移动要求'bcrypt'退出注释行。

编辑回答:

在编辑帖子时,我发现我没有完全按照列表​​。在我的代码中,我使用了

require 'BCrypt'

而不是

require 'bcrypt'

将警告改为全小写后,警告消失了!

0 个答案:

没有答案