gpt4 book ai didi

java - Javaagent Instrumentation Framework 的 JUnit 测试框架

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:06:45 24 4
gpt4 key购买 nike

为 Java 代理和检测库的代码创建单元测试的标准方法是什么。我使用 Byte Buddy 框架创建了一个 Java 代理,用于在 Web 应用程序之上开发分析器,现在我想为该代理编写 JUnit 测试用例。

最佳答案

您可以从 Byte Buddy's own unit tests 中获取灵感用于创建 Java 代理。为此,声明对 byte-buddy-agent 模块的测试依赖。该模块包含一个类,该类能够在运行时使用返回 Instrumentation 实例的 ByteBuddyAgent.install() 附加 Java 代理。确保在运行单元测试后删除 Java 代理。否则,您的代理将在任何后续测试中保持 Activity 状态。

创建可重复测试的棘手部分是在应用代理之前不得加载类。 Byte Buddy 的测试工具通过创建一个 ByteArrayClassLoader 来解决这个问题,它能够处理所有受检测的类。由于此类加载器是动态创建的,因此可以保证这一点。

大多数 JDK 捆绑的 VM 都能够在运行时附加 Java 代理。可以肯定的是,Byte Buddy 确实为 JUnit 定义了一个 AgentAttachmentRule,它在运行测试之前断言此功能。您也可以考虑这一点。

关于java - Javaagent Instrumentation Framework 的 JUnit 测试框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35577485/

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