Java 如何在其他方法调用中使用传递的参数?
我已经读到我可以使用Java 如何在其他方法调用中使用传递的参数?,java,mockito,Java,Mockito,我已经读到我可以使用答案对象来解决这个问题,但是在我的例子中有一个问题。情况是这样的: SecondObject SecondObject=firstObject.getByType(字符串类型) 然后 List=secondObject.getSomeOtherValues() 实际上,在模拟对secondObject的调用时,我想使用参数type。这可能吗?执行以下操作: when(firstObject.getByType(anyString())).thenAnswer( ne
答案
对象来解决这个问题,但是在我的例子中有一个问题。情况是这样的:
SecondObject SecondObject=firstObject.getByType(字符串类型)
然后
List=secondObject.getSomeOtherValues()
实际上,在模拟对secondObject
的调用时,我想使用参数type
。这可能吗?执行以下操作:
when(firstObject.getByType(anyString())).thenAnswer(
new Answer() {
public Object answer(InvocationOnMock invocation) {
String type= invocation.getArguments()[0];
SecondObject second = Mockito.mock(SecondObject );
//do something
if(type== ....){
when(second.getSomeOtherValues() ).thenReturn(....)
} else{
.....................................
}
return second ;
}
});
SecondObject SecondObject=firstObject.getByType(字符串类型)
我没有测试过,但关键是
if(type== ....){
when(second.getSomeOtherValues() ).thenReturn(....)
} else{
.....................................
}
mockito answer的主页这太棒了,非常感谢。Mockito对我来说是新的,我不知道它可以根据条件返回值