gpt4 book ai didi

java - 如何验证和编写测试用例以检查 ASM/Byte Buddy 实例是否在运行时创建

转载 作者:行者123 更新时间:2023-12-02 13:42:20 26 4
gpt4 key购买 nike

我用 ASM 和 Byte Buddy 编写了代码,我需要编写测试用例以确保这些实例确实是在运行时创建的。

关于应该如何去做的任何想法?

最佳答案

我假设您问的是如何验证生成的类。作为灵感,have a look at Byte Buddy's tests当然会测试生成的代码。一个简单的测试如下所示:

 Class<?> type = new ByteBuddy()
.makeInterface()
.make()
.load(getClass().getClassLoader(), ClassLoadingStrategy.Default.WRAPPER)
.getLoaded();
assertThat(Modifier.isPublic(type.getModifiers()), is(true));
assertThat(type.isEnum(), is(false));
assertThat(type.isInterface(), is(true));
assertThat(type.isAnnotation(), is(false));

上述测试验证了接口(interface)的创建。使用反射 API,您可以在创建后与生成的类进行交互。

Byte Buddy 提供了用于隔离生成代码的ClassLoadingStrategy.Default.WRAPPER 策略。这样,Byte Buddy 为该类生成了一个新的类加载器,并且单元测试保持可重复性。如果将类加载到现有的类加载器(例如系统类加载器)中,则情况不会如此。

关于java - 如何验证和编写测试用例以检查 ASM/Byte Buddy 实例是否在运行时创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42676581/

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