>我没有从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
我注意到的第一件事是您在 objMapper 的第二个存根中使用sqsJSONMessage.getMessage()
,您可能也应该在此之前移动sqsJSONMessage.getMessage()
的存根:
when(sqsJSONMessage.getMessage()).thenReturn("test");
when(objMapper.readValue("test", RecordCreatedMessage.class)).thenReturn(recordCreatedmessage);
如果您不关心参数,请使用 anyString()
而不是 "test"
。