gpt4 book ai didi

java - 是否可以有条件地模拟不带参数的方法?

转载 作者:行者123 更新时间:2023-12-05 00:49:41 25 4
gpt4 key购买 nike

mockito 大师们,我有一个挑战! ;)

我有一个不带参数的方法,我想模​​拟它的行为以提供不同的结果,具体取决于外部条件。

例如,我想做这样的事情:

MyInterface myMock = mock(MyInterface.class);
Sky sky = buildRandomSkyColor();

when(myMock.methodWithNoArguments()).thenReturn("blue").if(sky.isBlue());
when(myMock.methodWithNoArguments()).thenReturn("grey").if(sky.isGrey());

是否有可能在 Mockito 上有这种有条件的行为?我也尝试过使用 doStub()doAnswer(),但一无所获。

非常感谢任何帮助!非常感谢!

最佳答案

您可以使用自定义答案来执行此操作

MyInterface myMock = mock(MyInterface.class);
Sky sky = buildRandomSkyColor();

when(myMock.methodWithNoArguments()).thenAnswer(new Answer<String>(){
String answer(InvocationOnMock invocation) {
if(sky.isBlue())
return "blue";
else
return "gray";
}
}

关于java - 是否可以有条件地模拟不带参数的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38507495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com