[英]Mock Redis for unit test
所以这是我的连接字符串
public class RedisConnectorHelper
{
static RedisConnectorHelper()
{
RedisConnectorHelper.lazyConnection = new Lazy<ConnectionMultiplexer>(() =>
{
string redisServer = WebConfigurationManager.AppSettings["RedisServer"];
return ConnectionMultiplexer.Connect(redisServer+ ",allowAdmin=true");
}, System.Threading.LazyThreadSafetyMode.PublicationOnly);
}
private static Lazy<ConnectionMultiplexer> lazyConnection;
public static ConnectionMultiplexer Connection
{
get
{
return lazyConnection.Value;
}
}
}
我的单元测试测试了用于存储 redis 缓存值的 divisions 方法,但在这里我无法弄清楚如何模拟 redis 进行单元测试,因为这个测试方法直接尝试与 redis 建立连接管道以及当地环境。
[Test]
public void GetDivisons()
{
var mockDatabase = new Mock<StackExchange.Redis.IDatabase>();
var mockMultiplexer = new Mock<StackExchange.Redis.IConnectionMultiplexer>();
var result = _notebookService.GetDivisons();
Assert.NotNull(result);
}
Redis 可以被认为是一种缓存服务的实现。 你可以
这允许为具有业务逻辑的类编写单元测试。 为了测试缓存服务基于Redis的实现,需要编写组件测试,此时需要一个Redis的运行实例。
或者您可以启动一个模仿 Redis 服务器的 TCP 服务器,但由于多种原因,这是一个糟糕的解决方案。 例如,它需要了解有关 Redis 服务器的一些详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.