Bra*_*don 1 java spring-boot reactive
我们有一个 methodA 它返回:
return bObj.methodB()
.flatMap(x -> cObj.methodC(x));
Run Code Online (Sandbox Code Playgroud)
methodB 返回Mono<String>,methodC 返回Mono<Void>。
使用 Mockito 时,我们可以模拟 methodB,但不能模拟 methodC。
when(bObj.methodB()).thenReturn(Mono.just("x"));
when(cObj.methodC(eq("x"))).thenReturn(Mono.empty());
aObj.methodA();
Run Code Online (Sandbox Code Playgroud)
当它运行时,我们得到以下异常:
java.lang.NullPointerException: The mapper returned a null Publisher
Run Code Online (Sandbox Code Playgroud)
当运行应用程序时,这可以正常工作,但当使用 Mockito 运行时,却不能。我认为这与 flatMap 有关,但无法弄清楚。参考这个问题似乎应该有效,但事实并非如此。有任何想法吗?
事实证明,如果有人遇到这样的问题,请确保Mockito.when定义正确。如果不匹配,则返回 null。因此例外。
顺便说一句,我在问题中遗漏了一些信息,以使其不那么复杂,但事实证明我描述的示例效果很好。重新处理它显示我的实际代码与when 子句不匹配。
| 归档时间: |
|
| 查看次数: |
3848 次 |
| 最近记录: |