我正在使用以下技巧(来源于http://mikbe.tk/2011/02/10/blazingly-fast-tests/),以确保在每次使用Spork进行RSpec运行时,模型都会重新加载:
Spork.each_run do
load "#{Rails.root}/config/routes.rb"
Dir["#{Rails.root}/app/**/*.rb"].each { |f| load f }
# .....
end
然而,每次运行测试时,它会导致以下警告:
/myproject/app/models/model.rb:36: warning: already initialized constant CONFIGURABLE
我可以通过在每个常量后面加上以下代码来避免这种情况:if !defined?(A_CONSTANT)。虽然这样看起来不太对劲(但它确实有效)。你有什么建议可以使其正常工作吗?(即我的模型仍将在测试中重新加载,但我不必在每个常量定义后面放置if。)