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

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

如何在 java 中返回迭代器的同一類中模擬方法

如何在 java 中返回迭代器的同一類中模擬方法

白板的微信 2022-09-07 16:52:14
我正在嘗試對一個方法進(jìn)行單元測試,該方法調(diào)用另一個返回類型位于同一類中的方法。我試圖使用 來模擬此方法,但不確定如何返回迭代器。我在這里檢查了堆棧溢出的其他答案,但看起來我在這里遺漏了一些東西。getFruitItemMap()getAllItemsBelongingToFruitIteratorMockito.spy()class FruitItemImpl {Map<String, Fruit> getFruitItemMap() {        Map<String, Fruit> fruitMap = new HashMap<>();        Iterator<Fruit> items = getAllItemsBelongingToFruit("Apple");while (items.hasNext()) {            Fruit fruitItem = items.next();            fruitMap.put(fruitItem.getID(), fruitItem);        }        return fruitMap;    }public Iterator<Fruit> getAllItemsBelongingToFruit(String fruit) {      //some logic that returns an iterator}下面是單元測試:    @Test    public void testGetFruitItemMap() {        Map<String, Fruit> fruitItemMap = new HashMap<>();        FruitItemImpl doa1 = Mockito.spy(dao);   Mockito.doReturn(**new Iterator<Fruit>**).when(doa1).getAllItemsBelongingToFruit("Apple") //Here        Assert.assertEquals(fruitItemMap.size(), doa1.getFruitItemMap().size());    }由于我是Mockito和單元測試世界的新手,因此試圖弄清楚它。在這種情況下,我不確定如何使mojito返回迭代器。Mockito.doReturn()
查看完整描述

1 回答

?
素胚勾勒不出你

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個贊

最簡單的方法是收集適當(dāng)?shù)膶ο螅闹蟹祷?。在你的例子中,你可以從你在測試中使用的 's 返回一個迭代器:FruitIteratorfruitItemMapvalues()


@Test

public void testGetFruitItemMap() {

    Map<String, Fruit> fruitItemMap = new HashMap<>();

    FruitItemImpl doa1 = Mockito.spy(dao);

    Mockito.doReturn(fruitItemMap.values().iterator()) // Here!

           .when(doa1).getAllItemsBelongingToApple("Apple");

    Assert.assertEquals(fruitItemMap.size(), doa1.getFruitItemMap().size());

}


查看完整回答
反對 回復(fù) 2022-09-07
  • 1 回答
  • 0 關(guān)注
  • 104 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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