第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我想使用間諜來模擬方法,但我需要獲得一些虛擬數(shù)據(jù)作為回報

我想使用間諜來模擬方法,但我需要獲得一些虛擬數(shù)據(jù)作為回報

www說 2023-10-12 14:45:08
我想模擬 getUserDataFromExt() 并傳遞本地哈希圖,并期望它返回一些數(shù)據(jù)列表,并向傳入的哈希圖添加/分配一些值。注意:我無法從構(gòu)造函數(shù)注入該哈希圖并模擬它。 public List<Report> getUserData() {    .............    ..............    Map<String, Set<Integer>> studyToRelationshipPk = new HashMap<>();                List<NetworkUserSiteDetail> uniqueList = getUserDataFromExt(studyToRelationshipPk);    ..............    }有沒有一種方法可以讓我模擬該方法并仍然從傳入的本地參數(shù)中獲取數(shù)據(jù)并返回一些列表。
查看完整描述

1 回答

?
holdtom

TA貢獻1805條經(jīng)驗 獲得超10個贊

如果您無法重構(gòu)代碼,則需要spy為您的類創(chuàng)建一個(以模擬getUserDataFromExt)。


然后你可以使用thenAnswer修改你的 HashMap 并返回列表:


when(spy.getUserDataFromExt()).thenAnswer(

    new Answer() {

         public Object answer(InvocationOnMock invocation) {


             // get your method arguments

             Object[] args = invocation.getArguments();


             // do whatever with your hashmap


             // return your list

             return ...

         }

    }

);

如果您可以重構(gòu)代碼,最好將該方法移至getUserDataFromExt其他方法并對其進行模擬。您仍然可以使用相同的方式修改參數(shù)和結(jié)果。


您可能還需要考慮更改方法的行為 - 因為修改參數(shù)并返回結(jié)果 - 從其他開發(fā)人員的角度來看可能是非常意外的。


查看完整回答
反對 回復 2023-10-12
  • 1 回答
  • 0 關(guān)注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號