[問題] mock註解和autowired

作者: ntpuisbest (阿龍)   2022-04-22 17:08:46
在使用@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
我有找到一個答案
但是看不太懂
作者: Chikei ( )   2022-04-22 17:39:00
請 1. 先搞懂何謂(測試裡的) mocking2. 去看 mockito 的 @Mock 是在幹嘛的
作者: ntpuisbest (阿龍)   2022-04-22 18:38:00
https://kucw.github.io/blog/2020/2/spring-unit-test-mockito/https://i.imgur.com/2etOSfG.jpghttps://i.imgur.com/iOg9X9d.jpg我好像懂了,簡單說就是萬一依賴的Bean還沒有做出來時的替代品
作者: ssccg (23)   2022-04-23 07:51:00
不完全是,上面這圖的說法我覺得是錯的,那是較少數的情況如果依賴一樣是你要寫的,那你幹麻不寫完再測? → 因為你只要測想測的這個Class,沒有要測依賴的其他Class,這種情況mock真正的意義是在限制測試範圍,這叫單元測試如果依賴不是你負責的是在別的模組,不管是還沒寫好還是沒提供,這種情況用mock還是在限制測試範圍在你自己的模組內在所有東西都要寫好一起測的整合測試,才有可能出現"暫時"代替沒寫好的東西的mock
作者: ntpuisbest (阿龍)   2022-04-28 09:23:00
謝謝

Links booklink

Contact Us: admin [ a t ] ucptt.com