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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

從方法調(diào)用返回時(shí)模擬和處理 Map.Entry

從方法調(diào)用返回時(shí)模擬和處理 Map.Entry

一只名叫tom的貓 2023-06-21 15:41:52
簡(jiǎn)介:當(dāng)從方法調(diào)用返回時(shí),我對(duì)如何處理單個(gè)“Map.Entry”感到困惑。在我的具體情況下,我需要模擬這個(gè)(目前使用mockito),但我的問(wèn)題是如何將“Map.Entry”作為一個(gè)單元處理,而不是模擬它......兩者的幫助將是巨大的贊賞。============================我有一個(gè)像下面這樣的方法。我需要?jiǎng)?chuàng)建一個(gè)匹配的實(shí)體(我假設(shè)是一個(gè) Map.Entry),以便在調(diào)用該方法時(shí)模擬返回。我不知道如何創(chuàng)建單個(gè) Map.Entry。我一直追蹤到對(duì)數(shù)據(jù)庫(kù)的 sql 調(diào)用的調(diào)用,但只能找到將返回的對(duì)象轉(zhuǎn)換為 Map.Entry 的點(diǎn)。沒(méi)有說(shuō)明如何構(gòu)建這樣的東西。我需要有關(guān)如何構(gòu)建可由模擬返回的單個(gè)“Map.Entry”的幫助。 public Map.Entry<Date,Boolean> getLastModified(SomeClass someClass)    throws Exception    {        return clusterViewDataProvider.getClusterModified(someClass);    }這是一行將為我創(chuàng)建模擬對(duì)象的行。為了簡(jiǎn)單起見(jiàn),假設(shè)上面的方法位于“Foo”類中。Foo foo = mock(Foo.class);然后我需要這樣的東西來(lái)說(shuō)明當(dāng)調(diào)用該方法(作為模擬)時(shí),它應(yīng)該返回我需要構(gòu)建的“Map.Entry”。when(foo.getLastModifiedGid(any())).thenReturn(the Map.Entry I don't know how to make yet);最后,我需要斷言關(guān)于返回的 Map.Entry 的一些可測(cè)試的內(nèi)容。我可以檢查斷言中的鍵和值 - 沒(méi)有比這更奇特的了 - 再次,我不確定如何將其作為單個(gè) Map.Entry 訪問(wèn)...assertTrue(The Key == SomeDate)assertTrue(The Value == True)如果我有任何不清楚的地方,請(qǐng)發(fā)表評(píng)論,我會(huì)澄清。格拉茨。
查看完整描述

3 回答

?
吃雞游戲

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

無(wú)需創(chuàng)建您自己的Map.Entry實(shí)現(xiàn)。您可以使用現(xiàn)有的實(shí)現(xiàn)之一,例如AbstractMap.SimpleEntry

Date?date?=?new?Date();
boolean?value?=?true;

Map.Entry<Date,?Boolean>?entry?=??new?AbstractMap.SimpleEntry<>(date,?value);
when(foo.getLastModifiedGid(any())).thenReturn(entry);

AbstractMap.SimpleImmutableEntry

Map.Entry<Date,?Boolean>?entry?=??new?AbstractMap.SimpleImmutableEntry<>(date,?value);

作為旁注,來(lái)自的日期類java.util已過(guò)時(shí),來(lái)自的類java.time應(yīng)用于 Java 8+。具體來(lái)說(shuō),java.util.Date被替換為java.time.Instant.


查看完整回答
反對(duì) 回復(fù) 2023-06-21
?
繁星coding

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊

構(gòu)建您自己的自定義 Entry 類需要大量額外的代碼實(shí)現(xiàn),僅用于測(cè)試。


這應(yīng)該是設(shè)計(jì)測(cè)試的一個(gè)危險(xiǎn)信號(hào),因?yàn)槟芸赡苁箚?wèn)題變得比需要的復(fù)雜得多。


相反,為什么不創(chuàng)建一個(gè)實(shí)際的地圖并讓地圖完成工作呢?


    //define your expected response element

    Date foo = ...;

    Boolean bar = ...;


    //instantiate map

    Map<Date,Boolean> dummyMap = new HashMap<>();

    dummyMap.put(foo, bar);


    //fetch an actual working copy from a functional map

    Map.Entry<Date, Boolean> baz = dummyMap.entrySet().stream().findFirst().get();


    //mock away

    when(foo.getLastModifiedGid(any())).thenReturn(baz);

我對(duì)您為什么要斷言有關(guān)條目本身的某些內(nèi)容感到有些困惑。如果你定義它,它應(yīng)該是你的。如果您的測(cè)試方法更改了它,請(qǐng)測(cè)試該結(jié)果,而不是您提供的固定對(duì)象。


查看完整回答
反對(duì) 回復(fù) 2023-06-21
?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以實(shí)現(xiàn)自己的條目


class DummyEntry<K,V> implements Map.Entry<K, V> {


        K key;

        V value;


        public DummyEntry(K key, V value) {

            this.key = key;

            this.value = value;

        }


        @Override

        public K getKey() {

            return key;

        }


        @Override

        public V getValue() {

            return value;

        }


        @Override

        public V setValue(V value) {

            this.value = value;

            return value;

        }

    }

然后將其返回到您的模擬中。


when(foo.getLastModifiedGid(any())).thenReturn(new DummyEntry(...))


查看完整回答
反對(duì) 回復(fù) 2023-06-21
  • 3 回答
  • 0 關(guān)注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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