Mock和@InjectMocks的區(qū)別及說明
更新時(shí)間:2024年11月11日 09:12:59 作者:有點(diǎn)野的程序猿
@Mock和@InjectMocks是Mockito框架中的兩個(gè)注解,前者用于創(chuàng)建模擬對(duì)象,后者用于將模擬對(duì)象注入到被測(cè)試類中
@Mock和@InjectMocks的區(qū)別
@Mock和@InjectMocks是Mockito框架中的兩個(gè)注解。
@Mock
- 用于創(chuàng)建模擬對(duì)象,創(chuàng)建的模擬對(duì)象的屬性值都適用默認(rèn)值進(jìn)行初始化,基本數(shù)據(jù)類型例如int默認(rèn)為0,boolean默認(rèn)為false,對(duì)于引用數(shù)據(jù)類型都是用null進(jìn)行初始化。
- 通過該注解可以創(chuàng)建一個(gè)模擬對(duì)象,模擬對(duì)象具有被模擬的類的相同行為,并且允許自己定義方法的返回值和行為。
@InjectMocks
- 用于將模擬對(duì)象注入到被測(cè)試類中的相應(yīng)字段
- 通過該注解可以自動(dòng)將模擬對(duì)象注入到被測(cè)試類中標(biāo)記為@InjectMocks的字段中
- 可以理解為使用@Mock創(chuàng)建出來的對(duì)象注入到@InjectMocks創(chuàng)建的對(duì)象中
- 這樣被測(cè)試類就可以使用模擬對(duì)象作為其依賴了
代碼示例
public class AClassTest{
@Mock
private AClass aClass;
@Test
public void testMethodA() {
//使用aClass進(jìn)行測(cè)試
}
}
public class BClassTest{
@Mock
private AClass aClass;
@InjectMocks
private BClass bClass;
@Test
public void testMethodB() {
//使用bClass進(jìn)行測(cè)試,其中aClass已經(jīng)被注入到了bClass中了
}
}
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java設(shè)計(jì)模式七大原則之依賴倒置原則詳解
依賴倒轉(zhuǎn)原則,即:上層模塊不應(yīng)該依賴底層模塊,它們都應(yīng)該依賴于抽象,抽象不應(yīng)該依賴于細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴于抽象。本文將詳細(xì)介紹Java設(shè)計(jì)模式七大原則之一的依賴倒置原則,需要的可以參考一下2022-02-02
MybatisPlus處理大表查詢的實(shí)現(xiàn)步驟
在實(shí)際工作中當(dāng)指定查詢數(shù)據(jù)過大時(shí),我們一般使用分頁(yè)查詢的方式一頁(yè)一頁(yè)的將數(shù)據(jù)放到內(nèi)存處理,本文主要介紹了MybatisPlus處理大表查詢的實(shí)現(xiàn)步驟,感興趣的可以了解一下2024-08-08
SpringBoot+ MySQL多線程查詢與聯(lián)表查詢性能對(duì)比
本文主要介紹了SpringBoot+ MySQL多線程查詢與聯(lián)表查詢性能對(duì)比,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-05-05
Java動(dòng)態(tài)編譯執(zhí)行代碼示例
這篇文章主要介紹了Java動(dòng)態(tài)編譯執(zhí)行代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12
淺談什么是SpringBoot異常處理自動(dòng)配置的原理
今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識(shí),文章圍繞著SpringBoot異常處理自動(dòng)配置展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
MyBatis的mapper.xml文件中入?yún)⒑头祷刂档膶?shí)現(xiàn)
這篇文章主要介紹了MyBatis的mapper.xml文件中入?yún)⒑头祷刂档膶?shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01

