pau*_*aul 8 java junit instrumentation
是否可以在JUnit测试中使用java.lang.instrument.Instrumentation?我使用mockrunner来模拟Servlet,并希望测量会话中存储的对象的大小
是的,这是可能的,但不是很简单。
使用 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 参数传递:
-javaagent:<path to>/jamm.jar
Run Code Online (Sandbox Code Playgroud)
在单元测试中,您可以实例化 MemoryMeter 并使用它:
MemoryMeter meter = new MemoryMeter();
meter.measure(object);
meter.measureDeep(object);
meter.countChildren(object);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1548 次 |
| 最近记录: |