Vim*_*dav 4 java junit unit-testing byte-buddy
为 Java 代理和检测库的代码创建单元测试的标准方法是什么?我已经使用 Byte Buddy 框架创建了一个 Java 代理,用于在 Web 应用程序之上开发分析器,现在我想为该代理编写 JUnit 测试用例。
您可以从Byte Buddy 自己的用于创建 Java 代理的单元测试中获得灵感。为此,声明对byte-buddy-agent模块的测试依赖项。该模块包含一个能够在运行时附加 Java 代理的类,ByteBuddyAgent.install()该代理返回一个Instrumentation实例。确保在运行单元测试后删除 Java 代理。否则,您的代理将保持活跃状态以进行任何后续测试。
创建可重复测试的棘手部分是在应用代理之前不得加载类。Byte Buddy 的测试工具通过创建一个ByteArrayClassLoader能够处理所有受检测的类的测试工具来解决这个问题。由于该类加载器是动态创建的,因此可以保证这一点。
大多数 JDK 捆绑的 VM 都能够在运行时附加 Java 代理。不过,可以肯定的是,Byte Buddy 确实AgentAttachmentRule为 JUnit 定义了一个在运行测试之前断言此功能的方法。您也可以考虑这一点。
| 归档时间: | 
 | 
| 查看次数: | 2363 次 | 
| 最近记录: |