import java.lang.annotation.Retention; import java.lang.annotation.Target; import java.lang.annotation.ElementType; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface MyTag{ String name(); }



Comment utiliser les annotations et la réflexion Java pour implémenter les appels Junit4
Exigence d'instance
Exigence : Simulez la structure du cas d'utilisation dans Junit4 et personnalisez une étiquette comme identification du cas de test.
L'annotation @Test représente un cas de test dans Junit4 L'essence de chaque cas de test est une méthode dans la classe de test, c'est-à-dire :
@Test public void test() { fail("Not yet implemented"); }
Exigences spécifiques : #🎜. 🎜#
La classe de test est la méthode de construction par défautUtilisez le label MyTag comme identifiant pour savoir si la méthode est un cas d'utilisationLa méthode comme utilisation case doit être sans paramètre# 🎜🎜#Écrire une méthode runCase(String pkgName) afin qu'elle puisse terminer l'appel des cas de test dans la classe spécifiée
Annotation design
#🎜 🎜#Vous devez d'abord définir une annotation MyTag. Le code est le suivant :import java.lang.annotation.Retention; import java.lang.annotation.Target; import java.lang.annotation.ElementType; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface MyTag{ String name(); }
Copier après la connexion
Conception du cas de testSimulez le framework junit4 et écrivez une classe de test, où vous connecter, info et logout sont des méthodes sans paramètre, et test est une méthode paramétrée# 🎜🎜#import java.lang.annotation.Retention; import java.lang.annotation.Target; import java.lang.annotation.ElementType; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface MyTag{ String name(); }
public class TestTag{ @MyTag(name="case1") public void login(){ System.out.println("login"); } @MyTag(name="case2") public void info(){ System.out.println("info"); } @MyTag(name="case3") public void logout(){ System.out.println("logout"); } @MyTag(name="case4") public void test(String p){ System.out.println("logout"); } }
L'idée de conception de la classe en cours d'exécution
Parce que la classe de test est la méthode de construction par défaut, la L'API suivante est utilisée pour terminer l'instanciation de classe
Class<?> clazz = Class.forName(pkgName) Object obj = clazz.newInstance();
Parce que la classe de test contient de nombreuses méthodes, nous devons obtenir toutes les méthodes et les filtrer selon les règles. Le code est le suivant :
Method[] methods = clazz.getMethods(); for (Method method : methods) { //过滤规则 }
Déterminez si la balise de la méthode est MyTag Le code est le suivant :
If(method.getAnnotation(MyTag.class) != null)
Judge Si la méthode n'a pas de paramètres, le code est le suivant : #🎜 🎜#
If(method.getParameterCount()==0)
method.invoke(obj)
public static void runCase(String pkgName) throws IllegalAccessException,IllegalArgumentException, InvocationTargetException, InstantiationException,ClassNotFoundException { Class<?> clazz = Class.forName(pkgName); Object obj = clazz.newInstance(); Method[] methods = clazz.getMethods(); for (Method method : methods) { if(method.getAnnotation(MyTag.class) != null&& method.getParameterCount()==0) { method.invoke(obj); //调用方法 System.out.println("测试用例名称是:"+method.getName()); } } }
logout
Le nom du cas de test est : logout
login
Le nom du cas de test est : login
info
Le nom du cas de test est : info
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Guide de la racine carrée en Java. Nous discutons ici du fonctionnement de Square Root en Java avec un exemple et son implémentation de code respectivement.

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Guide du numéro Armstrong en Java. Nous discutons ici d'une introduction au numéro d'Armstrong en Java ainsi que d'une partie du code.

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est
