[英]unable to mock collection objects
如何模擬這個特定的代碼段?
Collection<SeoUrlParam> params = getUrlState().getParameters();
我已經嘲笑了
urlState = mock(UrlState.class);
但是我不確定如何模擬實際上是一個類的params集合
您可能不想嘲笑該集合。 您希望集合中存在一些真實的數據,然后讓代碼從那里操作它。
現在,按照調用的布局方式,您可能有兩個模擬對象-一個用於生成getUrlState()
的模擬結果,另一個用於實際從getParameters()
返回一個集合。
我不確定您使用的是哪種類型的電話,因此我將對其進行介紹。 但是,該原理適用。
// Assuming you have the appropriate mock for getUrlState defined
SeoUrlParamHolder parameterHolderMock = mock(SeoUrlParamHolder.class);
Collection<SeoUrlParam> dummyData = Collections.singletonList(new SeoUrlParam());
when(urlState.getUrlState()).thenReturn(parameterHolderMock);
when(parameterHolderMock.getParamters()).thenReturn(dummyData);
不要嘲笑集合對象。 集合本身通常沒有足夠的邏輯,因此值得對邏輯進行存根。
將您的收藏視為價值對象,並根據需要創建真實的收藏。 如果您要模擬集合中的單個對象,那很好,我強烈建議您這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.