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/