此方法
中第二个参数的正确 Mockito 匹配器是什么 签名:
List<Something> findSomething(Object o, Integer... ids);
我尝试了以下匹配器:
when(findSomething(any(), anyInt())).thenReturn(listOfSomething);
when(findSomething(any(), any())).thenReturn(listOfSomething);
但是 Mockito 没有为我创建代理,返回的List
为空。
>像这样使用anyVararg()
:
Application application = mock(Application.class);
List<Application> aps = Collections.singletonList(new Application());
when(application.findSomething(any(), anyVararg())).thenReturn(aps);
System.out.println(application.findSomething("foo").size());
System.out.println(application.findSomething("bar", 17).size());
System.out.println(application.findSomething(new Object(), 17, 18, 19, 20).size());
输出:
1
1
1
Integer...
是定义Integer
数组之上的语法糖。所以嘲笑它的正确方法是:
when(findSomething(any(), any(Integer[].class))).thenReturn(listOfSomething);