[问题] 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