为Java代理和工具库的代码创建单元测试的标准方法是什么。我使用Buddy框架创建了一个Java代理,用于在之上开发一个分析器,现在我想为这个代理编写JUnit测试用例。
发布于 2016-02-24 09:18:07
您可以从字节Buddy自己的单元测试中获得创建Java的灵感。为此,在字节-巴迪-代理模块上声明一个测试依赖项。该模块包括一个类,它能够使用ByteBuddyAgent.install()在运行时附加一个Instrumentation代理,后者返回一个Instrumentation实例。确保在运行单元测试后删除Java代理。否则,您的代理将在任何后续测试中保持活动状态。
在创建可重复测试的棘手部分是,在应用代理之前不能加载类。字节巴迪的测试工具通过创建一个ByteArrayClassLoader来解决这一问题,它能够容纳所有受检测约束的类。由于这个类加载器是动态创建的,这是可以保证的。
大多数JDK绑定的VM都能够对Java代理进行运行时附件。当然,Buddy确实为JUnit定义了一个JUnit,它在运行测试之前断言了这个功能。你也可以考虑一下。
https://stackoverflow.com/questions/35577485
复制相似问题