gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:36:43 28 4
gpt4 key购买 nike

是否可以在 JUnit 测试中使用 java.lang.instrument.Instrumentation?我正在使用 mockrunner 来模拟一个 Servlet,并想测量 session 中存储的对象的大小

最佳答案

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

使用 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

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

MemoryMeter meter = new MemoryMeter();
meter.measure(object);
meter.measureDeep(object);
meter.countChildren(object);

关于java - 是否可以在 JUnit 测试中使用 java.lang.instrument.Instrumentation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3405703/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com