2017-11-01 27 views
0

私は以下の実装をしています。 私は接続文字列を提供したくないので、これらの単位テストを模擬して書いてみたいと思います。Moq Redisキャッシュのユニットテスト

public virtual void Put<TValue>(string key, TValue value, TimeSpan? timeout) 
     {   
      var serialized = JsonConvert.SerializeObject(value); 
      if (Config.CacheEnableCompression) 
      { 
       this.Cache.StringSet(key, Compressor.GZipCompress(serialized), timeout ?? DefaultExpiration); 
      } 
      else 
      { 
       this.Cache.StringSet(key, serialized, timeout ?? DefaultExpiration); 
      } 
     } 
+0

キャッシュ/コンフィグオブジェクトの種類は何ですか? – Seb

+0

@Seb String型 – Keys

+0

@Sebしたがって、基本的にConfigはコンフィギュレーションマネージャです。Cacheはconnectionmultiplexer.getdatabase()から派生します – Keys

答えて

1

あなたは、マルチプレクサと、このようなデータベース・オブジェクトをモックできます

var mockDatabase = new Mock<StackExchange.Redis.IDatabase>(); 

var mockMultiplexer = new Mock<StackExchange.Redis.IConnectionMultiplexer>(); 

mockMultiplexer 
    .Setup(_ => _.GetDatabase(It.IsAny<int>(), It.IsAny<object>())) 
    .Returns(mockDatabase.Object); 
関連する問題