如何模拟返回`Mono<Void>`的方法

use*_*026 11 java unit-testing mockito reactive-programming spring-webflux

如何模拟返回的方法Mono<Void>

我有这个返回的方法 Mono<Void>

public Mono<Void> deleteMethod(Post post) {

        return statusRepository.delete(post);
    }
Run Code Online (Sandbox Code Playgroud)

在我的测试课中,我想做这样的事情

given(statusRepository.delete(any(Post.class))).willReturn(Mono.empty());
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点?

有人能帮我吗?

谢谢。

小智 7

这可以使用 Mockito.when

Mockito.when(statusRepository.delete(any(Post.class)).thenReturn(Mono.empty());
Run Code Online (Sandbox Code Playgroud)

...调用方法并验证...

Mockito.verify(statusRepository).delete(any(Post.class));
Run Code Online (Sandbox Code Playgroud)