Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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
Arrays 如何使用mockito模拟包含对象的数组?_Arrays_Unit Testing_Kotlin_Mocking_Mockito - Fatal编程技术网

Arrays 如何使用mockito模拟包含对象的数组?

Arrays 如何使用mockito模拟包含对象的数组?,arrays,unit-testing,kotlin,mocking,mockito,Arrays,Unit Testing,Kotlin,Mocking,Mockito,在Mockito单元测试中,我试图模拟一个数组,其中包含对象消息的实例。为此,我尝试将其模拟为普通对象,例如: private var messagesMock=mock(Array::class.java) 这会产生以下错误/异常: org.mockito.exceptions.base.MockitoException: Cannot mock/spy class [Lrobot.fsrt.robotguest.common.data.Message; Mockito cannot moc

在Mockito单元测试中,我试图模拟一个数组,其中包含对象
消息的实例。为此,我尝试将其模拟为普通对象,例如:

private var messagesMock=mock(Array::class.java)

这会产生以下错误/异常:

org.mockito.exceptions.base.MockitoException: 
Cannot mock/spy class [Lrobot.fsrt.robotguest.common.data.Message;
Mockito cannot mock/spy because :
 - VM does not not support modification of given type

如何使用Mockito以正确的方式模拟数组?

一个明显的非答案:您(几乎)从不模拟表示容器的对象

数组就是一个容器

创建具有所需大小的容器,然后将模拟对象放入该普通容器中,并确保生产代码使用带有准备内容的容器


就这么简单:您不需要模拟数组、列表或映射:您可以按原样创建它们,并操纵它们的内容

还要注意:你的问题不是很清楚。
Message
是变量还是泛型。您想要一个包含对象消息的数组,还是想要创建一些通用的
数组
实例?所以一个带有额外上下文的实数在这里肯定会有帮助。如果我想测试迭代器呢?你是什么意思?测试您自己的一些接口(如iterable)的实现是另一回事。