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

How to mock a method that returns `Mono<Void>`

如何模拟 returns Mono<Void> 的方法?

我有这个方法 returns Mono<Void>

public Mono<Void> deleteMethod(Post post) {

        return statusRepository.delete(post);
    }

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

given(statusRepository.delete(any(Post.class))).willReturn(Mono.empty());

有更好的方法吗?

有人可以帮助我吗?

谢谢。

这可以使用 Mockito.when:

Mockito.when(statusRepository.delete(any(Post.class)).thenReturn(Mono.empty());

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

Mockito.verify(statusRepository).delete(any(Post.class));

我也可以在不使用 Mono.empty 的情况下执行此操作,因此反应链将通过创建一个类型为 void 的模拟对象来完成。下面是一个代码示例(用 Kotlin 编写并使用 mockito-kotlin,但也应该适用于 mockito):

val mockVoid: Void = mock()

whenever(statusRepository.delete(any(Post::class.java)).thenReturn(mockVoid)