我有以下注解接口:
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface MockToken {
String user() default "user";
String[] allowedConfigs() default {};
}
字符串
在这个annotation中,我想定义另一个annotation,并在测试中初始化它。数据应该是末尾的数组:
"permissions": [
{
"resource_id": "xy",
"resource_scopes": [
"download"
],
"exp": 1522334692
}
]
型
我想在测试中初始化它们:
@Test
@MockToken(user= "user1", allowedConfigs = {testUser}, permission = examplePermission)
型
我现在的问题是如何定义permissionannotation,以及如何在测试中定义examplePermission。
我的目标是在最后有这样的字段访问:mockToken.permissions().resourceId();
1条答案
按热度按时间0qx6xfy61#
不幸的是,您可以在注解中使用的属性类型是有限的。
也许你可以直接尝试将
permission
对象本身作为测试的参数注入?在这种情况下,你需要一个ParameterResolver。在这个链接中,他们解释得很好:https://www.baeldung.com/junit-5-extensions#4-parameter-resolution
您也可以考虑创建自己的junit扩展。
你也可以尝试创建一个
@ParameterizedTest
?