我有两个类Parameter和ParameterList。 ParameterList类是由Parameters组成的ArrayList。有一个方法getParameterByKey,它按键值查找列表中的参数。我不想模拟Parameter.getValueString(),因为我希望值根据键而不同,并且每个键/值都需要模拟。任何意见都表示赞赏。
我想说去获取密钥“A431”并返回“BOSTON”(等),但我得到“java.lang.NullPointerException”。
when(mockedParmList.getParameterByKey("A431").getValueString()).thenReturn("BOSTON");
when(mockedParmList.getParameterByKey("A432").getValueString()).thenReturn("NYC")
答案 0 :(得分:1)
你必须模拟对mockedParmList.getParameterByKey()的调用。否则,它返回null,然后你在它上面调用getValueString(),这会让你进入NPE。
when(mockedParmList.getParameterByKey("A431")).thenReturn(new Parameter(...))
您可以使用实际的参数值(可能),也可以模拟您要返回的参数。