RSpec でテストする Rails アプリケーションがあります。Memcached に依存する操作を指定したいと考えています。そうするためのベストプラクティスは何ですか?
へのすべての呼び出しをスタブ化することでこれを行うことを考えましたRails.cache
。これは良い考えですか?
@Pan Thomakos の提案に従って、テストしようとしているシナリオの 1 つについて詳細を追加します。
システムにはアカウントの概念があるため、リクエストごとに現在のユーザーと現在のアカウントを取得します。システムには多くのアカウントがないため、すべてをキャッシュに保持し、そこから取得します。
def self.find_by_slug(slug)
Rails.cache.fetch(Account.cache_key_for_slug(slug), :expires_in => 1.day) { super }
end
このため、この場合のキャッシングは、あると便利なだけではなく、予想される動作であり、テストしたいものでもあります。したがって、キャッシュをオフにしてもうまくいきません。