在我的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以正确的方式模拟数组?
答案 0 :(得分:3)
一个独特的非答案:您(几乎)从不模拟代表容器的对象!
一个数组就是这样:一个容器。
创建具有所需大小的容器,然后将模拟对象放入该普通容器中,并确保包含准备好的内容的容器被生产代码使用。
就这么简单:您不模拟数组,列表或映射:您按原样创建它们,并操纵它们的 content !