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

omjgkv6w  于 2022-11-08  发布在  其他
关注(0)|答案(3)|浏览(436)

如何模拟一个返回Mono<Void>的方法?
这个方法返回Mono<Void>

public Mono<Void> deleteMethod(Post post) {

        return statusRepository.delete(post);
    }

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

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

有没有更好的办法?
有人能帮帮我吗?

  • 谢谢-谢谢
1dkrff03

1dkrff031#

使用Mockito.when可以实现这一点:

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

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

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

wn9m85ua2#

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

val mockVoid: Void = mock()

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

brvekthn3#

当我不想有一个空的单声道作为结果时,我这样做。

when(statusRepository.delete(any(Post.class))).thenReturn(Mono.just("").then());

相关问题