我有以下实现。 我想通过模拟为这些编写单元测试,因为我不想提供任何连接字符串。
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 :(得分: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);