作者ntpuisbest (阿龍)
看板java
標題[問題] mock註解和autowired
時間Fri Apr 22 17:08:46 2022
在使用@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://webptt.com/m.aspx?n=bbs/java/M.1650618528.A.A56.html
※ 編輯: ntpuisbest (111.241.61.70 臺灣), 04/22/2022 17:13:18
1F:→ Chikei: 請 1. 先搞懂何謂(測試裡的) mocking 04/22 17:39
2F:→ Chikei: 2. 去看 mockito 的 @Mock 是在幹嘛的 04/22 17:40
4F:→ ntpuisbest: t-mockito/ 04/22 18:38
7F:→ ntpuisbest: 我好像懂了,簡單說就是萬一依賴的Bean還沒有做出來 04/22 18:41
8F:→ ntpuisbest: 時的替代品 04/22 18:41
9F:→ ssccg: 不完全是,上面這圖的說法我覺得是錯的,那是較少數的情況 04/23 07:51
10F:→ ssccg: 如果依賴一樣是你要寫的,那你幹麻不寫完再測? → 因為你只 04/23 07:52
11F:→ ssccg: 要測想測的這個Class,沒有要測依賴的其他Class,這種情況 04/23 07:52
12F:→ ssccg: mock真正的意義是在限制測試範圍,這叫單元測試 04/23 07:53
13F:→ ssccg: 如果依賴不是你負責的是在別的模組,不管是還沒寫好還是沒 04/23 07:55
14F:→ ssccg: 提供,這種情況用mock還是在限制測試範圍在你自己的模組內 04/23 07:55
15F:→ ssccg: 在所有東西都要寫好一起測的整合測試,才有可能出現"暫時" 04/23 07:58
16F:→ ssccg: 代替沒寫好的東西的mock 04/23 07:58
17F:→ ntpuisbest: 謝謝 04/28 09:23