Ajout de paramètres à des annotations à l'aide d'actions de réécriture

Dans cet article de blog, nous allons :
- Démontrer la recherche et la correspondance des annotations
- Annotations d'amen à l'aide de modèles de moustache
Sensei permet de faire correspondre des modèles de code problématiques, puis de les modifier selon les implémentations convenues. Dans cet exemple, j'utilise @Disabled sans paramètre comme modèle de code problématique.
Annotation de test désactivée
Les tests désactivés sans raison précise peuvent s'avérer problématiques à long terme car nous oublions pourquoi nous les avons désactivés.
@Disabled
annuler ThisTestMethodHasNoDisabledReason () {
Assertions.fail (« Ce test est désactivé et ne devrait pas être exécuté ») ;
}
Le risque est qu'au fil du temps, la base de code évolue, que le test désactivé ne soit pas mis à jour en fonction de l'objectif du code et finisse par devenir redondant et non pertinent, et potentiellement jamais réactivé.
Lors des révisions de code, nous soulignerons souvent qu'il est judicieux d'ajouter une description explicative en tant que paramètre d'annotation.
@Disabled (« Désactivé pour montrer l'ajout d'une raison »)
annuler ThisTestMethodHasDisabledReason () {
Assertions.fail (« Ce test est désactivé et ne devrait pas être exécuté ») ;
}
Une recette de Sensei
Nous pouvons écrire une recette pour détecter quand @Disabled est ajouté sans explication et un correctif rapide qui nous rappelle d'ajouter la véritable raison expliquant pourquoi nous l'avons désactivé.
Quand je pense à ce que je vais faire, je dois :
- correspond à l'annotation Disabled sans aucun paramètre
- modifiez l'annotation Disabled pour avoir un paramètre avec le texte du marqueur « À FAIRE : ajoutez une description ici »
Création d'une recette d'avertissement
J'utilise Alt+Entrée pour créer une nouvelle recette.

Ajoutez ensuite le texte descriptif de base dans les informations générales.

En faisant de la règle un avertissement, tout code correspondant est surligné mais n'apparaît pas comme une erreur flagrante.

Trouvez l'annotation
Dans l'éditeur de recettes, je modifie la recherche pour qu'elle corresponde à une annotation.
Cela mettra en évidence toutes les annotations dans l'aperçu.

Cela fait, je souhaite filtrer en fonction du type d'annotation.
Je pourrais simplement utiliser Disabled mais je qualifie complètement la classe avec le package afin qu'elle ne corresponde qu'à l'annotation de JUnit 5. Comme le code source est affiché dans l'aperçu, je peux facilement le copier et le coller à partir du code réel pour éviter toute faute de frappe.
Je souhaite ensuite ne faire correspondre que les annotations sans paramètres, et je peux utiliser l'interface graphique pour le faire.

c'est-à-dire Rechercher :
recherche :
annotation :
tapez : « org.junit.Jupiter.API.Disabled »
sans :
paramètres :
- {}
Création d'une action de correction rapide de réécriture
Pour mon QuickFix, je vais utiliser une action de réécriture.
J'utilise le Afficher les variables fonctionnalité pour me montrer les variables Mustache et prévisualiser le contenu.

Et puis j'ajoute le code supplémentaire nécessaire pour créer le commentaire du marqueur de position.

c'est-à-dire QuickFix :
Correctifs disponibles :
- nom : « Ajouter un paramètre de commentaire todo »
actions :
- réécrire :
à : « {{{.}}} (\" À FAIRE : ajoutez une description ici \ ») »
cible : « soi »
Sensei en action
Nous avons créé une courte vidéo montrant le processus de création de recettes en action.
Résumé
Lors de la création d'un Quick Fix de réécriture, il est plus facile de rechercher l'élément de code que nous voulons réécrire, car c'est alors l'entité elle-même sur laquelle nous pouvons agir.
Dans cet exemple, j'ai utilisé une action de réécriture pour modifier l'annotation. La réécriture est une action générale qui peut s'appliquer à n'importe quel élément de code et constitue une bonne option d'exploration par défaut.
Govern AI-driven development before it ships
Measure AI-assisted risk, enforce secure coding policy at commit, and accelerate secure delivery across your SDLC.
Explore more blogs
Lorem ipsum diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis eu volutpat odio facilisis.
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

One Culture of Security: How Sage built their security champions program with agile secure code learning
Discover how Sage enhanced security with a flexible, relationship-focused approach, creating 200+ security champions and achieving measurable risk reduction.
Secure AI-driven development before it ships
See developer risk, enforce policy, and prevent vulnerabilities across your software development lifecycle.



