spring mock
发布日期:2021-06-29 03:37:52
浏览次数:3
分类:技术文章
本文共 2075 字,大约阅读时间需要 6 分钟。
spring mock
引入jar
org.mockito mockito-all 1.10.19 test
使用方式1:
@InjectMocks@Autowiredprivate OrderProduceWorker OrderProduceWorker;//被mock类必须是 OrderProduceWorker 属性,否则不起作用@Mockprivate OrderProduce OrderProduce;@Beforepublic void setup() { MockitoAnnotations.initMocks(this);}@Testpublic void testDoProcess() throws Exception { Mockito.when(orderProduce.orderProduce(Mockito.anyLong())).thenReturn(SUCCESS); ..................................................... .....................................................}
另类玩法:
@Autowiredprivate OrderProduceWorker OrderProduceWorker;//被mock类必须 **不是** OrderProduceWorker 属性,要想启作用 见 @Before@Mockprivate OrderProduce OrderProduce;@Before public void setup() { //init MockitoAnnotations.initMocks(this); //手工注入替换 OrderProduceWorker worker = AopTestUtils.getTargetObject(this.orderProduceWorker); // You could have the same result by orderProduceWorker add @InjectMocks annotation ReflectionTestUtils.setField(worker, "orderProduce", this.orderProduce); }@Testpublic void testDoProcess() throws Exception { Mockito.when(orderProduce.orderProduce(Mockito.anyLong())).thenReturn(SUCCESS); ..................................................... .....................................................}
Mockito.when的一个问题是你传递给它的参数是你试图存根的表达式.因此,当您使用Mockito.when两次进行相同的方法调用时,第二次使用它时,您实际上将获得第一次存根的行为.
我实际上建议不要使用Mockito.when.使用它时可能会遇到许多陷阱 – 很多情况下,当您需要其他语法时. “更安全”的替代语法是Mockito方法的“do”系列.doReturn(value).when(mock).method(arguments ...);doThrow(exception).when(mock).method(arguments ...);doAnswer(answer).when(mock).method(arguments ...);
所以在你的情况下,你想要
doThrow(new BadSqlGrammarException(??, ??, ??)).when(accountMapper).createBadGrammarException();
如果你开始使用Mockito,那么我建议你学会使用“do”系列.它们是模拟void方法的唯一方法,而Mockito文档特别提到了这一点.但是只要Mockito.when可以使用它们就可以使用它们.因此,如果您使用“do”系列,您的测试结果会更加一致,而学习曲线也会减少.
摘自:http://www.voidcn.com/article/p-sqbaaxbk-bth.html
spring boot mock 参见:https://www.jianshu.com/p/ecbd7b5a2021
转载地址:https://blog.csdn.net/zangzh/article/details/105241563 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月22日 02时03分35秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
python3 urllib和requests模块
2019-04-29
Axure常见的几种原型图
2019-04-29
svn的checkout与export的区别与使用
2019-04-29
js实现点击复制功能
2019-04-29
phpquery采集案例
2019-04-29
jsp内置对象request的常用方法
2019-04-29
javascript 0和-0
2019-04-29
iView3.0样式显示问题(Select和DatePicker)
2019-04-29
Gulp常用的一些插件
2019-04-29
Docker:基础知识
2019-04-29
mysql知识总结
2019-04-29
C#连接ACCESS
2019-04-29
linux安装VMtools
2019-04-29
移动硬盘插入win10检测到却不显示盘符解决方法
2019-04-29
怎么查看本机S/N序列号和BIOS版本
2019-04-29
ThinkPad X1 Carbon安装win7.
2019-04-29
EasyOrtho卫星影像处理软件
2019-04-29
TerraMaster RAID Manager
2019-04-29
vmware vcenter converter(物理机转换虚拟机)
2019-04-29
解决Surface 网卡不识别
2019-04-29