测试中如何直接创建io.vertx.mutiny.redis.client.Response对象
无需Mock创建Redis Response对象的实现方式
你可以直接通过Vertx原生Redis Response的实现类结合Mutiny包装类来创建对象,无需依赖Mock框架,具体步骤如下:
核心思路
io.vertx.mutiny.redis.client.Response是Vertx原生io.vertx.redis.client.Response的Mutiny适配包装类,只需先创建原生Response实例,再通过Mutiny包装类的静态方法转换即可。
代码示例
Event event = new Event(); String eventStr = event.toString(); // 1. 创建原生Vertx Redis Response实例(以字符串类型为例) io.vertx.redis.client.Response vertxResponse = io.vertx.redis.client.Response.string(eventStr); // 如需模拟其他Redis数据类型,可使用对应工厂方法: // 数字类型:io.vertx.redis.client.Response.number(123L); // 哈希结构:io.vertx.redis.client.Response.hash(Map.of("id", "1", "name", "test")); // 列表结构:io.vertx.redis.client.Response.list(Arrays.asList(Response.string("a"), Response.string("b"))); // 2. 转换为Mutiny版本的Response io.vertx.mutiny.redis.client.Response mutinyResponse = io.vertx.mutiny.redis.client.Response.newInstance(vertxResponse); // 3. 返回包装好的Uni when(redisClient.get(any())).thenReturn(Uni.createFrom().item(mutinyResponse));
补充说明
原生io.vertx.redis.client.Response提供了一系列静态工厂方法,覆盖了Redis常用的返回类型(字符串、数字、哈希、列表等),完全可以满足测试场景下模拟Redis返回结果的需求。
内容的提问来源于stack exchange,提问作者Konstantin Rezchikov
相关产品推荐
相关产品推荐

