在另一个类的上下文中模拟一个方法

时间:2014-12-18 20:23:54

标签: java unit-testing mockito powermock

我有两个类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")

1 个答案:

答案 0 :(得分:1)

你必须模拟对mockedParmList.getParameterByKey()的调用。否则,它返回null,然后你在它上面调用getValueString(),这会让你进入NPE。

when(mockedParmList.getParameterByKey("A431")).thenReturn(new Parameter(...))

您可以使用实际的参数值(可能),也可以模拟您要返回的参数。