junit 在Java中定义嵌入式注解接口

5ssjco0h  于 5个月前  发布在  Java
关注(0)|答案(1)|浏览(70)

我有以下注解接口:

@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();

0qx6xfy6

0qx6xfy61#

不幸的是,您可以在注解中使用的属性类型是有限的。
也许你可以直接尝试将permission对象本身作为测试的参数注入?在这种情况下,你需要一个ParameterResolver。
在这个链接中,他们解释得很好:https://www.baeldung.com/junit-5-extensions#4-parameter-resolution
您也可以考虑创建自己的junit扩展。
你也可以尝试创建一个@ParameterizedTest

相关问题