会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Java老K
以梦为码,不负韶华
博客园
首页
新随笔
联系
订阅
管理
1
2
3
下一页
2021年1月11日
如何使用Eclipse内存分析工具定位内存泄露
摘要: 本文以我司生产环境Java应用内存泄露为案例进行分析,讲解如何使用Eclipse的MAT分析定位问题 一. 背景 11月10号晚上8点收到报警邮件,一看是OOM 打开公司监控系统查看应用各项指标发现JVM中老年代在持续增长(从上次发布10月30号到11月10号的12天内一直在增长, 存在内存泄露迹象
阅读全文
posted @ 2021-01-11 23:12 Java老K
阅读(220)
评论(0)
推荐(0)
2020年12月14日
Java虚拟机科普系列—元空间Metaspace的内存结构
摘要: 我们深入研究元空间的架构。我们描述了各个层和组件,以及它们是如何协同工作的。 这对那些想要破解hotspot和Metaspace或者至少真正理解内存的去向以及为什么我们不能仅仅使用malloc的人来说是很有趣的。 与大多数其他非平凡的分配器一样,元空间是在层中实现的。 在底部,内存是在操作系统的大区
阅读全文
posted @ 2020-12-14 23:31 Java老K
阅读(544)
评论(0)
推荐(0)
2020年12月9日
Spock单元测试框架实战指南十 - 注意事项
摘要: Spock虽然好用,但要应用到实际项目中还是需要注意几个问题,下面讲下我们公司在使用过程中遇到的一些问题和解决方案 版本依赖 要使用Spock首先需要引入相关依赖,目前使用下来和我们项目兼容的Spock版本是1.3-groovy-2.5,以maven为例(gradle可以参考官网),完整的pom依赖
阅读全文
posted @ 2020-12-09 00:05 Java老K
阅读(1750)
评论(0)
推荐(0)
2020年12月8日
Spock单元测试框架实战指南九 - 模拟抽象类方法
摘要: 我们平时写单元测试时经常会遇到调用抽象类或父类的方法,这些抽象方法可能是调用底层接口或数据库,需要mock掉,让抽象方法返回一个我们指定的值,以便测试当前代码逻辑的场景。 下面讲下Spock如何结合power mock实现动态mock抽象方法 一. 抽象方法或父类方法动态Mock AbstractS
阅读全文
posted @ 2020-12-08 00:26 Java老K
阅读(878)
评论(0)
推荐(0)
2020年12月6日
Spock单元测试框架实战指南八 - 常用mock封装成基类
摘要: 这一篇介绍在实际使用Spock的过程中如何把一些常用的测试方法抽出来,封装成基类使用 BaseSpock 在前面几篇文章讲解Spock结合power mock实现静态方法mock功能时,示例代码里经常会用到LogUtils等工具类的静态方法去记录日志,那我们就可以把LogUtils类的mock代码抽
阅读全文
posted @ 2020-12-06 23:04 Java老K
阅读(620)
评论(0)
推荐(0)
2020年12月4日
Spock单元测试框架实战指南七 - 动态Mock
摘要: 这篇讲解Spock自带的mock功能如何和power mock组合使用,发挥更强大的作用 动态Mock静态方法 (Spock Where + Power Mock) 在上一篇的例子中使用power mock让静态方法返回一个指定的值,那能不能每次返回不同的值呢? 我们先看下什么场景需要这样做: /*
阅读全文
posted @ 2020-12-04 00:16 Java老K
阅读(1968)
评论(0)
推荐(0)
2020年12月2日
Spock单元测试框架实战指南六 - 静态方法测试
摘要: 本篇主要讲解Spock如何扩展第三方Power Mock对静态方法进行测试 实现原理 前面的文章讲到Spock的单测代码是继承自Specification基类,而Specification又是基于Junit的注解@RunWith()实现的,代码如下: @RunWith(Sputnik.class)
阅读全文
posted @ 2020-12-02 23:46 Java老K
阅读(1740)
评论(0)
推荐(0)
2020年12月1日
Spock单元测试框架实战指南五 - void方法测试
摘要: 本篇讲解如何针对void方法,即无返回结果的方法测试 void方法 void方法的测试不能像前面几篇介绍的那样在then标签里验证返回结果,因为void方法没有返回值 一般来说无返回值的方法,内部逻辑会修改入参的属性值,比如参数是个对象,那代码里可能会修改它的属性值,虽然没有返回,但还是可以通过校验
阅读全文
posted @ 2020-12-01 23:07 Java老K
阅读(1061)
评论(0)
推荐(0)
Spock单元测试框架实战指南四 - 异常测试
摘要: 这一篇主要讲使用Spock如何测试代码中抛异常的场景 背景 有些方法需要抛出异常来中断或控制流程,比如参数校验的逻辑: 不能为null,不符合指定的类型,list不能为空等验证,如果校验不通过则抛出checked异常,这个异常一般都是我们封装的业务异常信息,比如下面的业务代码: /** * 校验请求
阅读全文
posted @ 2020-12-01 00:26 Java老K
阅读(848)
评论(0)
推荐(0)
2020年11月26日
Spock单元测试框架实战指南三-If esle 多分支场景测试
摘要: 一. Expect + Where 如果业务比较复杂,对应的代码实现会有不同的分支逻辑,类似下面的伪代码: if () { if () { // 代码逻辑 } else { // 代码逻辑 } } else if () { for () { if () { // 代码逻辑 } else { // 代
阅读全文
posted @ 2020-11-26 23:34 Java老K
阅读(639)
评论(0)
推荐(0)
1
2
3
下一页
公告