2014-12-18 62 views
0

我有兩個類Parameter和ParameterList。 ParameterList類是一個由參數組成的ArrayList。有一個getParameterByKey方法,它通過鍵值在列表中查找參數。我不想模擬Parameter.getValueString(),因爲我希望這個值根據鍵的不同而不同,並且需要模擬每個鍵/值。任何輸入讚賞。在另一個類的上下文中嘲弄方法

我想說的去獲得關鍵「A431」並返回「波士頓」(等),但我得到「java.lang.NullPointerException」。

when(mockedParmList.getParameterByKey("A431").getValueString()).thenReturn("BOSTON"); 
    when(mockedParmList.getParameterByKey("A432").getValueString()).thenReturn("NYC") 

回答

1

你必須模擬對mockedParmList.getParameterByKey()的調用。否則,它返回null,然後你調用getValueString(),它會讓你進入NPE。

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

要麼你可以使用一個實際的參數值(可能),或者你可以模擬你將要返回的參數。

+0

我希望能避開不得不嘲笑我想要的每個值的回報,但這確實解決了null問題 – Abercrombieande