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