首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在JUnit测试中使用java.lang.instrument.Instrumentation?

是否可以在JUnit测试中使用java.lang.instrument.Instrumentation?
EN

Stack Overflow用户
提问于 2010-08-04 20:57:43
回答 1查看 1.8K关注 0票数 9

是否可以在JUnit测试中使用java.lang.instrument.Instrumentation?我正在使用mockrunner模拟Servlet,并希望测量存储在会话中的对象的大小。

EN

回答 1

Stack Overflow用户

发布于 2013-04-15 20:24:52

是的,这是可能的,但不是很简单。

使用java.lang.instrument.Instrumentation的问题是,您将始终需要使用JVM代理。http://www.javabeat.net/2012/06/introduction-to-java-agents/上提供了对JVM虚拟机代理的很好的介绍。

但是,由于您的单元测试也在jvm中运行,因此您可以将代理指定为JVM参数。

https://github.com/jbellis/jamm上提供了一个内存报告JVM代理,它可以帮助您完成想要做的事情,并且可以打包。您可以使用Maven或Ant构建它。为了使用它,您需要构建它,然后在启动单元测试或单元测试套件时将以下内容作为jvm参数进行传递:

代码语言:javascript
复制
-javaagent:<path to>/jamm.jar

在单元测试中,您可以实例化MemoryMeter并使用它:

代码语言:javascript
复制
MemoryMeter meter = new MemoryMeter();
meter.measure(object);
meter.measureDeep(object);
meter.countChildren(object);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3405703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档