spring mock
发布日期:2021-06-29 03:37:52
浏览次数:4
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月19日 19时28分47秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Android Bugs——RecyclerView.Adapter java.lang.IllegalStateException: The specified child already has
2019-04-29
Android内存优化——使用SparseArray和ArrayMap代替HashMap
2019-04-29
Android——仿ios阻尼回弹动画
2019-04-29
ExoPlayer实现设置画面比例功能
2019-04-29
Android——DialogFragment(一)用法介绍
2019-04-29
Android——Glide的使用详解(二)缓存与下载
2019-04-29
Materail Design 入门(十一)——Palette 使用
2019-04-29
Android——MediaPlayer+SurfaceView完整例子
2019-04-29
Android——Activity切换炫酷动画实现
2019-04-29
Android Bugs—— Error:In declare-styleable FontFamilyFont, unable to find attribute android:font
2019-04-29
Android Bugs——Error:java.lang.RuntimeException: Some file crunching failed, see logs for details
2019-04-29
云计算基础及解决方案
2019-04-29
第二十一章:变换(十三)
2019-04-29