Mock和@InjectMocks的區(qū)別及說明
更新時間:2024年11月11日 09:12:59 作者:有點野的程序猿
@Mock和@InjectMocks是Mockito框架中的兩個注解,前者用于創(chuàng)建模擬對象,后者用于將模擬對象注入到被測試類中
@Mock和@InjectMocks的區(qū)別
@Mock和@InjectMocks是Mockito框架中的兩個注解。
@Mock
- 用于創(chuàng)建模擬對象,創(chuàng)建的模擬對象的屬性值都適用默認值進行初始化,基本數(shù)據(jù)類型例如int默認為0,boolean默認為false,對于引用數(shù)據(jù)類型都是用null進行初始化。
- 通過該注解可以創(chuàng)建一個模擬對象,模擬對象具有被模擬的類的相同行為,并且允許自己定義方法的返回值和行為。
@InjectMocks
- 用于將模擬對象注入到被測試類中的相應(yīng)字段
- 通過該注解可以自動將模擬對象注入到被測試類中標記為@InjectMocks的字段中
- 可以理解為使用@Mock創(chuàng)建出來的對象注入到@InjectMocks創(chuàng)建的對象中
- 這樣被測試類就可以使用模擬對象作為其依賴了
代碼示例
public class AClassTest{
@Mock
private AClass aClass;
@Test
public void testMethodA() {
//使用aClass進行測試
}
}
public class BClassTest{
@Mock
private AClass aClass;
@InjectMocks
private BClass bClass;
@Test
public void testMethodB() {
//使用bClass進行測試,其中aClass已經(jīng)被注入到了bClass中了
}
}
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringMVC之RequestContextHolder詳細解析
這篇文章主要介紹了SpringMVC之RequestContextHolder詳細解析,正常來說在service層是沒有request的,然而直接從controlller傳過來的話解決方法太粗暴,后來發(fā)現(xiàn)了SpringMVC提供的RequestContextHolder,需要的朋友可以參考下2023-11-11
redis.clients.jedis.exceptions.JedisMovedDataException異常解決
redis.clients.jedis.exceptions.JedisMovedDataException?異常是在使用?Jedis?客戶端與?Redis?集群進行交互時發(fā)生的,下面就來介紹一下解決方法,感興趣的可以了解一下2024-05-05
Java數(shù)據(jù)結(jié)構(gòu)之順序表篇
順序表,全名順序存儲結(jié)構(gòu),是線性表的一種。線性表用于存儲邏輯關(guān)系為“一對一”的數(shù)據(jù),順序表自然也不例外,不僅如此,順序表對數(shù)據(jù)物理存儲結(jié)構(gòu)也有要求。順序表存儲數(shù)據(jù)時,會提前申請一整塊足夠大小的物理空間,然后將數(shù)據(jù)依次存儲起來,存儲時數(shù)據(jù)元素間不留縫隙2022-01-01
攔截Druid數(shù)據(jù)源自動注入帳密解密實現(xiàn)詳解
這篇文章主要為大家介紹了攔截Druid數(shù)據(jù)源自動注入帳密解密實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11

