序列化模拟抛出异常

时间:2014-06-12 12:39:24

标签: java unit-testing gson mockito

我正在尝试使用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。

有没有办法或是我完全错了?

2 个答案:

答案 0 :(得分:10)

根据the Mockito documentation,您可以制作模拟序列化:

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

答案 1 :(得分:2)

Stefan's answer above类似,通过注释创建的模拟可以通过以下方式标记为可序列化:

@Mock(serializable = true)
List serializableMock;