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ì)模式之原型模式詳細(xì)解讀
這篇文章主要介紹了Java設(shè)計(jì)模式之原型模式詳細(xì)解讀,原型模式屬于創(chuàng)建型設(shè)計(jì)模式,用于創(chuàng)建重復(fù)的對(duì)象,且同時(shí)又保證了性能,該設(shè)計(jì)模式的好處是將對(duì)象的創(chuàng)建與調(diào)用方分離,需要的朋友可以參考下2023-12-12SpringMVC之RequestContextHolder詳細(xì)解析
這篇文章主要介紹了SpringMVC之RequestContextHolder詳細(xì)解析,正常來說在service層是沒有request的,然而直接從controlller傳過來的話解決方法太粗暴,后來發(fā)現(xiàn)了SpringMVC提供的RequestContextHolder,需要的朋友可以參考下2023-11-11redis.clients.jedis.exceptions.JedisMovedDataException異常解決
redis.clients.jedis.exceptions.JedisMovedDataException?異常是在使用?Jedis?客戶端與?Redis?集群進(jìn)行交互時(shí)發(fā)生的,下面就來介紹一下解決方法,感興趣的可以了解一下2024-05-05Java數(shù)據(jù)結(jié)構(gòu)之順序表篇
順序表,全名順序存儲(chǔ)結(jié)構(gòu),是線性表的一種。線性表用于存儲(chǔ)邏輯關(guān)系為“一對(duì)一”的數(shù)據(jù),順序表自然也不例外,不僅如此,順序表對(duì)數(shù)據(jù)物理存儲(chǔ)結(jié)構(gòu)也有要求。順序表存儲(chǔ)數(shù)據(jù)時(shí),會(huì)提前申請(qǐng)一整塊足夠大小的物理空間,然后將數(shù)據(jù)依次存儲(chǔ)起來,存儲(chǔ)時(shí)數(shù)據(jù)元素間不留縫隙2022-01-01攔截Druid數(shù)據(jù)源自動(dòng)注入帳密解密實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了攔截Druid數(shù)據(jù)源自動(dòng)注入帳密解密實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11MybatisPlus實(shí)現(xiàn)邏輯刪除的示例代碼
本文主要介紹了Mybatis?Plus實(shí)現(xiàn)邏輯刪除的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05