0
我有一個單獨的類,我們稱之爲NamesList
:RSpec的對象構造
class NamesList
include Singleton
def initialize
if names_cached?
output_names
else
cache_names
end
end
...
private
def cache_names
Rails.cache.write('some_names_list', NamesClass.some_scope)
end
end
在我的天賦,我想測試,當緩存設置 - 獲取實例不會發出DB連接。我的規格:
it "doesn't call database if cache is set" do
Rails.cache.exist?('some_names_list', :whatever)
expect(NamesClass).to receive(:some_scope)
NamesList.instance
end
它不起作用。但是,如果我將initialize
方法的內容轉移到其他方法(如.some_method
),那麼當我做NamesList.instance.some_method
- 我的測試通過。我該如何解決它?