@mocked太狠了,把類的所有的例項都mock了。有時候我們希望乙個類不同的例項有不同的mock邏輯,怎麼呢?
下面列舉3種方法。還是以如何mock類中的提到的anordinaryclass為例。
import mockit.expectations;
import mockit.injectable;
import mockit.mocked;
import org.junit.assert;
import org.junit.test;
//乙個類多個例項的mock
public class oneclassmanyinstancemockingtest
};anordinaryclass instance3 = new anordinaryclass();
assert.asserttrue(instance1.ordinarymethod() == 20); //instance1 的ordiarymethod 被mock了
assert.asserttrue(instance2.ordinarymethod() == 200); //instance2 的ordiarymethod 被mock了
assert.asserttrue(instance3.ordinarymethod() == 2); //instance3 不受影響,執行原邏輯
}//mock 方法二:用@mocked
// 適用場景:類的所例項都需要mock,但不同例項也能保留不同mock的邏輯。
@test
public void testmocking2(@mocked anordinaryclass instance1,@mocked anordinaryclass instance2 )
};anordinaryclass instance3 = new anordinaryclass();
assert.asserttrue(instance1.ordinarymethod() == 20); //instance1 的ordiarymethod 被mock了
assert.asserttrue(instance2.ordinarymethod() == 200); //instance2 的ordiarymethod 被mock了
assert.asserttrue(instance3.ordinarymethod() == 0); //instance3 受@mock的影響,@mock會把類的所有方法都mock,返回型別為基本資料型別的返回0
}//mock 方法三:用@injectable。
// 適用場景:不是類的所例項都需要mock,被@injectable注釋例項會被mock,其他例項執行原有邏輯,不同例項也能保留不同mock邏輯。
@test
public void testmocking3(@injectable anordinaryclass instance1, @injectable anordinaryclass instance2)
};anordinaryclass instance3 = new anordinaryclass();
assert.asserttrue(instance1.ordinarymethod() == 20); //instance1 的ordiarymethod 被mock了
assert.asserttrue(instance2.ordinarymethod() == 200); //instance2 的ordiarymethod 被mock了
assert.asserttrue(instance3.ordinarymethod() == 2); //instance3 不受injectable的影響,因為@injectable只影響某乙個例項。
}}
《封裝一類梯形物件Ladder Java第五周》
對任務及求解方法的描述部分 問題描述 封裝一類梯形物件ladder,該類物件具有上底 下底和高的屬性,具有初始化梯形的功能 修改上底 下底和高的功能 求面積的功能。程式頭部的注釋結束 package liu public class ladder ladder double a,double b,d...
yolov3 修改 只識別一類(person)
yolov3可以識別多種目標,但是我們可能只需要識別一類物體,例如person。在編譯yolov3之後,預設可以識別多種目標 之前在網上看其他人修改yolov2版本,可以只識別person 但是yolov3版本的 有變化,需要做出其他修改。在網上找了一下,沒有發現yolov3的相關修改,於是自己修改...
3 第一類方法 不同模組如何使用
深度學習架構取代手工進行特徵和相似性計算。特徵提取模組為具有共享權重的多分支網路實現。然後,使用以下功能進行匹配 1.固定相關層 卷積實現 2.全連線神經網路產生匹配得分 3.卷積網路後加relu 使用卷積或全連線網路能從資料中學習適當的相似性度量,而不是在開始時強加乙個相關層。前者準確但慢 cnn...