Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在其他方法调用中使用传递的参数?_Java_Mockito - Fatal编程技术网

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对我来说是新的,我不知道它可以根据条件返回值