在Java中定义嵌入注释接口

问题描述 投票:0回答:1

我有以下注释接口:

@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

java junit interface java-annotations
1个回答
1
投票

不幸的是,注释中可以使用的属性类型是有限的。

也许您可以直接尝试注入

permission
对象本身作为测试参数? 在这种情况下,您将需要一个 ParameterResolver。

在此链接中,他们很好地解释了这一点:https://www.baeldung.com/junit-5-extensions#4-parameter-resolution

您还可以考虑创建自己的 junit 扩展。

© www.soinside.com 2019 - 2024. All rights reserved.