我有这样的方法
public int[] processData(List<Data> dataList){
//business logic
}
我用下面的方法来嘲笑它
when(processData(anyList())).thenReturn(new int[]{1,1});
和
when(processData(Mockito<Data>.anyList())).thenReturn(new int[]{1,1});
但什么都不管用。
我使用的是带有Java11和Mockito3.1的SpringBoot
有没有其他方法来嘲笑同样的事情?
3条答案
按热度按时间odopli941#
你的例子对我很有用:
这张照片:
[1, 1]
g6ll5ycj2#
mockito利用
equal()
作为验证/匹配参数值的遗留方法。在某些情况下,用户在验证参数值时需要更大的灵活性,因此最好使用参数匹配器,而不是
equal()
方法。注:
eq(obj)根据equals方法检查参数是否等于obj。即使您在不使用匹配器的情况下传递实际值,这也适用。
equals()
方法要求要使两个列表相等,它们必须以相同的顺序包含相同的元素。如果有两个列表,列表的类型应该匹配。
详见文件:https://docs.oracle.com/javase/6/docs/api/java/util/list.html#equals%28java.lang.object%29
tp5buhyn3#
您可以尝试使用when(processdata(mock(list.class)).thenreturn(new int[]{1,1}),但您的变量when(processdata(anylist()).thenreturn(new int[]{1,1})也适用于我。