类型不匹配:无法从 Flux<String> 转换为 Mono<String>

Type mismatch: cannot convert from Flux<String> to Mono<String>

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

@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();
}

您的代码片段无法编译。

无论如何:"concatWith" 运算符 returns 一个 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();
}