将标签作为注释参数:“属性值必须为常数”

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

我有一个包含多个常量的类,我想返回除一个以外的所有常量,以便进行一些测试。我做了一个简单的方法,但是当我在注释中使用它时,它返回错误“属性值必须恒定”。

public final class RolesConstants {

    public static final String APP_SYSTEM = "APP_SYSTEM";
    public static final String APP_CLIENT = "APP_CLIENT";
    public static final String APP_PROFESSIONAL = "APP_PROFESSIONAL";
    public static final String APP_ADMIN = "APP_ADMIN";
    public static final String PRO_ADMIN = "PRO_ADMIN";
    public static final String PRO_ADD_BOOKING = "PRO_ADD_BOOKING";
    public static final String PRO_EDIT_BOOKING = "PRO_EDIT_BOOKING";
    ...

    public static String[] allRolesButAPP_SYSTEM() {
        return new String[]{ APP_CLIENT, APP_PROFESSIONAL, ... };
    }
}


import org.springframework.security.test.context.support.WithMockUser;

public class ProfessionalResourceIT {

    @WithMockUser(roles = {RolesConstants.allRolesButAPP_SYSTEM()})
    public void cannotGetIfNotSystem(){
        assertThat(...);
    }
}

属性值必须为常数

java spring
1个回答
0
投票

您可以尝试这样的事情

import org.springframework.security.test.context.support.WithMockUser;

public class ProfessionalResourceIT {

    @WithMockUser(roles = {RolesConstants.APP_SYSTEM, RolesConstants.APP_CLIENT, so on})
    public void cannotGetIfNotSystem(){
        assertThat(...);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.