【问题标题】:Code coverage failure inside Flux map methodFlux map 方法中的代码覆盖失败
【发布时间】:2021-05-19 13:02:23
【问题描述】:

示例代码

Flux<Object> result=userMessagesDataStore.getByParamFilter(params)  ;
    result.map(r -> {
        UserMessageV1 v1 = (UserMessageV1) r;
        v1.setClientName("");
        return v1;
    });

对于上述代码,单元测试工作正常,但是当我签入声纳时出现代码覆盖问题(查看图片以供参考)。

谁能帮我解决这个问题?

【问题讨论】:

    标签: java rx-java reactive-programming spring-webflux


    【解决方案1】:

    里面的 lambda 表达式没有被调用。使用其返回类型并将其分配回result 变量,否则转换后的Flux 未使用,原始的保持不变。

    Flux<Object> result = userMessagesDataStore.getByParamFilter(params);
    result = result.map(r -> {
        UserMessageV1 v1 = (UserMessageV1) r;
        v1.setClientName("");
        return v1;
    });
    

    注意Flux#map(Function) JavaDoc,尤其是它的返回类型:

    返回:转换后的 Flux

    【讨论】:

    • 如何在 doOnComplete on return 语句中覆盖代码行??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    • 2015-11-20
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多