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

时间:2019-05-20 06:38:52

标签: arrays unit-testing kotlin mocking mockito

在我的Mockito单元测试中,我试图模拟一个包含对象Message实例的数组。为此,我尝试像普通对象一样模拟它:

private var messagesMock = mock(Array<Message>::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以正确的方式模拟数组?

1 个答案:

答案 0 :(得分:3)

一个独特的非答案:您(几乎)从不模拟代表容器的对象!

一个数组就是这样:一个容器。

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

就这么简单:您不模拟数组,列表或映射:您按原样创建它们,并操纵它们的 content