Arrays 如何使用mockito模拟包含对象的数组?
在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
消息的实例。为此,我尝试将其模拟为普通对象,例如:
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)的实现是另一回事。