java单元测试如何全覆盖_单元测试个人总结 (1)

2017年12月31日做一次技术总结,人生第一次框架选型:assertJ+Junit+powemockito+mockito+maven/ant/gradle+jacoco+jenkins+sonarqube单元测试中,要测试目标模块的时候比如测试 service 方法的时候,service 方法中我们有可能会去调用数据库的执行结果,会取 redis 中缓存数据,也有可能会使用当前的系统时间,根据...
摘要由CSDN通过智能技术生成

2017年12月31日做一次技术总结,人生第一次

框架选型:assertJ+Junit+powemockito+mockito+maven/ant/gradle+jacoco+jenkins+sonarqube

单元测试中,要测试目标模块的时候比如测试 service 方法的时候,service 方法中我们有可能会去调用数据库的执行结果,会取 redis 中缓存数据,也有可能会使用当前的系统时间,根据系统时间做一些逻辑处理,造成被测方法对外部有很强的依赖关系。假如被依赖的方法还没有开发完成或者预期输出有问题,就会造成被测方法单元测试失败。单元测试的思路就是我们在不涉及依赖关系的情况下测试代码。这种测试方式可以让你无视代码的依赖关系去测试代码的有效性,具体就是使用 mock 技术,模拟被依赖的组件的行为。

controller,service 层及 util 工具类使用 mockito 和 powermockito

dao 层使用,一开始想着在不依赖数据库的情况下就行测试,所以就使用了 h2 内存数据库,但是实际写的时候由于数据库类型的不同,很多 sql 语句使用了特定数据库的特定函数,导致一些 sql 不能测试。

前端 js 的单测没有涉及

环境搭建:

1). 搭建 sonarqube+maven+jenkins

jenkins 加节点,随着 jenkins 构建项目的增多,单个项目构建时间从一分钟到十几分钟不等,当同时多个项目代码有提交更新触发构建的时候会有大量任务排队等待。

maven 配置文件,添加 sonar 的地址配置,执行 maven 构建后 sonar 会自行去进行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值