我们有一个使用 RSpec 测试的 Rails 应用程序。我们想要指定依赖于 Memcached 的操作。这样做的最佳做法是什么?
我想通过存根所有调用来做到这一点Rails.cache
。这是一个好主意吗?
根据@Pan Thomakos 的建议,我正在添加一些关于我正在尝试测试的场景之一的额外细节:
我们的系统中有帐户的概念,因此在每次请求时我们都会检索当前用户和当前帐户。因为系统中的帐户不多,我们将它们全部保存在缓存中并从那里检索它们。
def self.find_by_slug(slug)
Rails.cache.fetch(Account.cache_key_for_slug(slug), :expires_in => 1.day) { super }
end
出于这个原因,在这种情况下,缓存不仅是一种很好的行为,而且是预期的行为和我想要测试的东西。因此关闭缓存是行不通的。