繁体   English   中英

使用其他注释的Java自定义注释

[英]Java Custom Annotation using another annotation

由于Powermock和Java 11的问题,我们不得不在所有测试类上使用@PowerMockIgnore。

@PowerMockIgnore({ "javax.management.*", "com.sun.org.apache.xerces.*", "javax.xml.*",
        "org.xml.*", "org.w3c.dom.*", "com.sun.org.apache.xalan.*", "javax.activation.*" })

为了避免在所有测试类中重复此操作,我们创建了一个自定义批注来代替,该批注在一个位置定义了此PowerMockIgnore。 这样我们所有测试类中所需的就是

@SuppressPowerMockInitError

但是:此自定义注释似乎不起作用。

import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Documented;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import org.powermock.core.classloader.annotations.PowerMockIgnore;

@Retention(RUNTIME)
@Target({ TYPE, METHOD })
@Inherited
@Documented
@PowerMockIgnore({ "javax.management.*", "com.sun.org.apache.xerces.*", "javax.xml.*",
        "org.xml.*", "org.w3c.dom.*", "com.sun.org.apache.xalan.*", "javax.activation.*" })
public @interface SuppressPowerMockInitError {

}

看起来不可能通过注释来实现。

但是,创建具有此公共注释的抽象类似乎是实现此目的的最佳方法。

import org.powermock.core.classloader.annotations.PowerMockIgnore;

@PowerMockIgnore({ "javax.management.*", "com.sun.org.apache.xerces.*", "javax.xml.*",
        "org.xml.*", "org.w3c.dom.*", "com.sun.org.apache.xalan.*", "javax.activation.*" })
public abstract class AbstractPowerMockTest {

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM