为不同的输入模拟参数返回不同的值

7d7tgy0s  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(439)

我遇到了一种情况,当输入发生变化时,我需要返回不同的值,返回值和输入参数都是相同的 String .

MethodA.getProperty("", "", "A");
    MethodA.getProperty("", "", "B");

我试图实现的mockito代码如下

Mockito.when(MethodA.getProperty(Mockito.any(),Mockito.any(),Mockito.anyString())).thenReturn("Apple")
Mockito.when(MethodA.getProperty(Mockito.any(),Mockito.any(),Mockito.anyString())).thenReturn("Banana")

我应该去 Apple for A, Banana for B .
请帮我一下,谢谢。

ddarikpa

ddarikpa1#

可以在模拟时比较参数以返回特定值。例子:

Mockito.when(MethodA.getProperty(Mockito.any(),Mockito.any(), ArgumentMatchers.argThat(x -> x.equals("A")))).thenReturn("Apple")
Mockito.when(MethodA.getProperty(Mockito.any(),Mockito.any(), ArgumentMatchers.argThat(x -> x.equals("B")))).thenReturn("Banana")

相关问题