【发布时间】:2020-06-30 20:13:42
【问题描述】:
我一直在尝试使用 Mockito 模拟具有可变参数参数的方法:
interface A {
B b(int x, int y, C... c);
}
A a = mock(A.class);
B b = mock(B.class);
when(a.b(anyInt(), anyInt(), any(C[].class))).thenReturn(b);
assertEquals(b, a.b(1, 2));
这不起作用,但是如果我这样做:
when(a.b(anyInt(), anyInt())).thenReturn(b);
assertEquals(b, a.b(1, 2));
这可行,尽管我在存根方法时完全省略了可变参数参数。
有什么线索吗?
【问题讨论】:
-
最后一个例子有效的事实是相当微不足道的,因为它匹配零可变参数传递的情况。
标签: java mocking variadic-functions mockito