序列化模拟引发异常

2022-09-04 07:33:14

我正在尝试使用mockMvc和mockito测试我的控制器。控制器主体如下:

Message createXYZ(@RequestBody XYZ inst){
   //creates XYZ
}

现在,为了通过请求正文推送值,我通过序列化XYZ使用GsonBuilder创建一个JSON。下面是类 XYZ 的结构:

class XYZ{

  List<Y> listofYs;
  //some other properties as well
}

我正在为List listofYs创建和设置一个模拟,当Gson试图序列化一个XYZ实例时,该实例具有一个模拟的listofYs,它生成NPE。

有没有办法解决,还是我完全做错了?


答案 1

根据 Mockito 文档,您可以使模拟可序列化:

List serializableMock = mock(List.class, withSettings().serializable());

答案 2

Stefan上面的回答类似,通过注释创建的模拟可以通过以下方式标记为可序列化:

@Mock(serializable = true)
List serializableMock;

推荐