[問題] mock註解和autowired

看板 Java
作者
時間
留言 17則留言,3人參與討論
推噓 0  ( 0推 0噓 17→ )
在使用@springboottest的時候 都會在方法名稱上宣告 @Test註解我知道 但我的問題是 如果今天想要測試service A service A依賴 dao A好了 在使用了autowired註解之後 就只需要autowired service a 但很多網路上的範例 都會使用mock註解 https://i.imgur.com/JRvTssf.jpg
這樣不是比autowired麻煩許多嗎? 就我的理解,這樣需要自己去注入 這樣的優勢是啥 https://i.imgur.com/mcR4Ts0.jpg
我有找到一個答案 但是看不太懂 --
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.241.61.70 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/java/M.1650618528.A.A56.html ※ 編輯: ntpuisbest (111.241.61.70 臺灣), 04/22/2022 17:13:18
1FChikei: 請 1. 先搞懂何謂(測試裡的) mocking 04/22 17:39
2FChikei: 2. 去看 mockito 的 @Mock 是在幹嘛的 04/22 17:40
4Fntpuisbest: t-mockito/ 04/22 18:38
5Fntpuisbest: https://i.imgur.com/2etOSfG.jpg 04/22 18:40
6Fntpuisbest: https://i.imgur.com/iOg9X9d.jpg 04/22 18:40
7Fntpuisbest: 我好像懂了,簡單說就是萬一依賴的Bean還沒有做出來 04/22 18:41
8Fntpuisbest: 時的替代品 04/22 18:41
9Fssccg: 不完全是,上面這圖的說法我覺得是錯的,那是較少數的情況 04/23 07:51
10Fssccg: 如果依賴一樣是你要寫的,那你幹麻不寫完再測? → 因為你只 04/23 07:52
11Fssccg: 要測想測的這個Class,沒有要測依賴的其他Class,這種情況 04/23 07:52
12Fssccg: mock真正的意義是在限制測試範圍,這叫單元測試 04/23 07:53
13Fssccg: 如果依賴不是你負責的是在別的模組,不管是還沒寫好還是沒 04/23 07:55
14Fssccg: 提供,這種情況用mock還是在限制測試範圍在你自己的模組內 04/23 07:55
15Fssccg: 在所有東西都要寫好一起測的整合測試,才有可能出現"暫時" 04/23 07:58
16Fssccg: 代替沒寫好的東西的mock 04/23 07:58
17Fntpuisbest: 謝謝 04/28 09:23