【问题标题】:Type mismatch: cannot convert from Flux<String> to Mono<String>类型不匹配:无法从 Flux<String> 转换为 Mono<String>
【发布时间】:2019-09-25 02:54:21
【问题描述】:

我已经使用反应堆通量和单声道编写了一些单元测试。在通量单元测试中工作正常。不工作在单声道。请给我一个解决方案。

@Test
public void monoError() {
    Mono<String> monoError = Mono.just("HelloWorld").concatWith(Mono.error(new RuntimeException("error"))).log();
    StepVerifier.create(monoError).expectNext("HellowWorld").expectErrorMessage("error").verify();
}

【问题讨论】:

  • 它在错误中说明了问题
  • 您尝试将Flux&lt;String&gt; 保存在Mono&lt;String&gt; 中
  • 你可以在通量上调用 single 来获得单声道

标签: java spring-webflux


【解决方案1】:

您的代码 sn-p 无法编译。

无论如何:“concatWith”运算符返回一个 Flux,因此您必须更改变量,其余的工作可能与您预期的一样。

这里是工作代码:

@Test
public void monoError() {
  Flux<String> monoError = Mono.just("HelloWorld")
      .concatWith(Mono.error(new RuntimeException("error")))
      .log();          ;
  StepVerifier.create(monoError)
      .expectNext("HelloWorld")
      .expectErrorMessage("error")
      .verify();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多