作者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/cn.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