一、第一次做UT,有一些自己的小收获,记录下,顺便希望能够帮助到别人。

二、Mock
 mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法
  说白了,Mock就是可以给你制造任何你想要的对象,分层测试,你可以只测试controller或者service,而不需要牵扯到下层的调用,这样的话,测试就变得容易了。你可以Mock任何自己想要的资源。
假设你的接口,有500种不同的返回结果,你要制造这500种返回结果来提高覆盖率,那么你会累死在写UT上,但是,你可以Mock让它返回任意值,这样UT覆盖率就会像坐火箭一样,嗖嗖的上升,哈哈哈!!!

1、当你进行controller层的测试的时候,需要Mock掉service层,
例如:

@Mock
private RouteServiceImpl routeService;

然后,你可以返回自己设置的、想要的、任意的内容,list是我期望返回的内容,

when(routeService.selectByRouteId(any())).thenReturn(list);

2、当你进行service层的测试的时候,需要Mock掉Dao(Mapper)层,
例如:

@Mock
private RuleMapper ruleMapper;

任意的大于0的整数是我期望的返回内容,

when(ruleMapper.insertSelective(any())).thenReturn(1);

3、有try/catch的块,需要加

@Test(expected = RuntimeException.class)

写UT之后,感觉代码的编写,会很大程度影响测试的繁简情况。当然,如果你确实是TDD,可能就不需要这样的建议。
1、尽量少用if/else,尤其忌讳嵌套,否则,你的UT肯定会写一大堆,毕竟,要么if,要么else(废话)
2、if里的逻辑,少用&& ||,嵌套多了,分支多的会让你哭的
3、少用static方法,目前我还不会static方法的测试/::</::</::<
4、少用private方法,测试困难,关于私有方法,可以测试调用它的方法。

使用Mock进行单元测试相关推荐

  1. 【全面解析Mock】Mock在单元测试中扮演一个什么角色?

    目录 一.Mock在单元测试中扮演一个什么角色 二.测试准备 三.使用Mock的理由 四.使用Python Mock 五.MagicMock类 六.mock.create_autospce 七.moc ...

  2. 带你读懂mock测试——单元测试实践篇

    1.什么是mock测试? Mock 测试就是在测试过程中,对于某些不容易构造或者不容易获取的比较复杂的对象,用一个虚拟的对象(Mock 对象)来创建以便测试的测试方法. 2.为什么要进行Mock测试? ...

  3. Mock进行单元测试

    文章目录 @InjectMocks 使用 1.Maven 2.创建Mock对象 Spy 我认为比较好的一种方式: Mockito 使用 Mock 对象的行为验证 验证调用次数 Spy 对象验证 中文文 ...

  4. 如何使用Mock进行单元测试

    为什么要使用Mock? Mock 测试就是在测试过程中,创建一个假的对象,避免你为了测试一个方法,却要自行构建整个 Bean 的依赖链. 举个例子: 类 A 需要调用类 B 和类 C,而类 B 和类 ...

  5. mock 抛出一个异常如何终止_教你使用Mock完成单元测试

    更多精彩文章请关注本人微信公众号 1.什么是Mock? mock是在测试过程中,对于一些不容易构造/获取的对象,创建一个mock对象来模拟对象的行为.比如说你需要调用B服务,可是B服务还没有开发完成, ...

  6. Mock完成单元测试

    转自:https://zhuanlan.zhihu.com/p/98074553 1.什么是Mock? mock是在测试过程中,对于一些不容易构造/获取的对象,创建一个mock对象来模拟对象的行为.比 ...

  7. Go Mock 接口测试 单元测试 极简教程

    gomock 是 Google 开源的 Golang 测试框架. GoMock is a mocking framework for the Go programming language.https ...

  8. Mock和Java单元测试中的Mock框架Mockito介绍

    什么是Mock? 在面向对象程序设计中,模拟对象(英语:mock object,也译作模仿对象)是以可控的方式模拟真实对象行为的假的对象.程序员通常创造模拟对象(mock object)来测试其他对象 ...

  9. 单元测试中使用Mock对象

    单元测试中使用Mock对象 单元测试中使用Mock对象 一.简单的替换 二.Mock 对象 三.测试 Servlet 单元测试中使用Mock对象 一.简单的替换 假设在代码中,你调用你自己的 getT ...

最新文章

  1. kernel笔记——块I/O
  2. 微课视频小学用计算机画画,初识电脑绘画
  3. python 向量_关于Python中的向量相加和numpy中的向量相加效率对比
  4. leetcode 104. Maximum Depth of Binary Tree
  5. scp选择二进制_二进制传输与文本传输区别
  6. Java代理设计模式(Proxy)的具体实现:静态代理和动态代理
  7. mysql 层_mysql各个层面优化
  8. FFMPEG结构体分析:AVPacket
  9. Java面试应该准备的知识点系列一
  10. 《卫星通信》课程大作业——基于MATLAB的无线通信链路级仿真
  11. mysql-cluster安装与配置
  12. feapder爬虫框架使用
  13. make menuconfig错误——make[2]: *** [scripts/kconfig/lexer.lex.c] 错误 127
  14. FC-AE-ASM节点卡(支持 FC-AE-ASM 协议)
  15. Shopee申请开店需要审核吗?
  16. 这就是2020:全球云计算十一大年度话题盘点
  17. 手动可以执行脚本,crontab执行失败,可能和环境变量有关(如果涉及到环境变量)
  18. 服务熔断 Hystrix
  19. 刷脸支付只是开端 浅谈3D视觉如何推进新零售崛起
  20. PPT设计的四大基本原则(亲密性)

热门文章

  1. 数组的创建和初始化(C语言)
  2. R语言【列联表与独立性检验(皮尔逊卡方检验、Fisher 检验)】
  3. 一阶系统开环传递函数表达式_古典控制理论(三)根轨迹法(闭环系统)
  4. 第五届金鹏奖圆满落幕 2015年度原创游戏榜单出炉
  5. 猿创征文|计算机学生必须掌握的学习工具
  6. NOIP2010 提高组 复赛 translate 机器翻译
  7. 1688商品sku采集抓取实现方法
  8. 首汽约车携手AWS,发布出行行业首个定制智能语音解决方案
  9. 朝九晚五的程序员如何提高开发技能有感
  10. 外贸邮箱的格式是什么样的?邮箱的注册方式有哪些?