Meta Annotations And Compased Annotations
Meta-annotations and compased annotations
Las anotaciones de JUnit Jupiter pueden utilizarse como metanotaciones. Esto significa que puedes definir tu propia anotación compuesta que heredará automáticamente la semántica de sus metanotaciones.
Por ejemplo, en lugar de copiar y pegar @Tag(“fast”) en todo tu código (consulta la sección Etiquetado y Filtrado), puedes crear una anotación compuesta personalizada llamada @Fast de la siguiente manera. Luego, @Fast puede usarse como un reemplazo directo de @Tag(“fast”).
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.junit.jupiter.api.Tag;
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Tag("fast")
public @interface Fast {
}
El siguiente método anotado con @Test demuestra el uso de la anotación @Fast.
@Fast
@Test
void myFastTest() {
// ...
}
Incluso puedes ir un paso más allá al introducir una anotación personalizada llamada @FastTest, que puede usarse como un reemplazo directo tanto de @Tag(“fast”) como de @Test.
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Tag("fast")
@Test
public @interface FastTest {
}
JUnit reconoce automáticamente lo siguiente como un método @Test que está etiquetado con “fast”:
@FastTest
void myFastTest() {
// ...
}