我没有从Mockito getMessage获得模拟值。 不确定我做错了什么。有什么想法吗?
测试用例:
SQSJSONMessage sqsJSONMessage = mock(SQSJSONMessage.class);
when(objMapper.readValue(message,SQSJSONMessage.class)).thenReturn(sqsJSONMessage);
doNothing().when(listener).decryptAndReplaceMessage(sqsJSONMessage);
when(objMapper.readValue(sqsJSONMessage.getMessage(), RecordCreatedMessage.class)).thenReturn(recordCreatedmessage);
when(sqsJSONMessage.getMessage()).thenReturn("test"); -- this throws null pointer exception
答案 0 :(得分:0)
我注意到的第一件事是你在objMapper的第二个存根中使用sqsJSONMessage.getMessage()
,你也可能在此之前移动sqsJSONMessage.getMessage()
的存根:
when(sqsJSONMessage.getMessage()).thenReturn("test");
when(objMapper.readValue("test", RecordCreatedMessage.class)).thenReturn(recordCreatedmessage);
如果您不关心参数,请使用anyString()
代替"test"
。