【发布时间】:2023-02-09 17:15:08
【问题描述】:
@Test
void annotatedClass() throws NoSuchMethodException {
Class<? extends service> aClass = underTest.getClass();
Method method = aClass.getDeclaredMethod("create", param.class);
method.setAccessible(true);
SneakyThrows sneakyThrows = method.getAnnotation(SneakyThrows.class);
Assertions.assertNotNull(sneakyThrows);
}
但是 assert 是 Null 并且私有方法用 @SneakyThrows 注释
想法谈话: 注释“SneakyThrows.class”未保留用于反射访问
我们能否击败注释保留并能够以某种方式对其进行测试?
【问题讨论】:
-
Lombok 用实际代码替换注释。注释在编译过程中被删除,这是 AFAIK 无法比拟的。但是,您可以通过使用导致异常的参数调用方法来测试注释是否真的会触发
标签: java unit-testing lombok