
Añadir parámetros a las anotaciones mediante acciones de reescritura
En esta entrada del blog, haremos lo siguiente:
- Demuestre la búsqueda y la coincidencia de anotaciones
- Anotaciones de amén con plantillas de bigote
Sensei brinda la capacidad de hacer coincidir patrones de código problemáticos y luego modificarlos para adaptarlos a las implementaciones acordadas. En este ejemplo, estoy usando @Disabled sin un parámetro como patrón de código problemático.
Anotación de prueba deshabilitada
Las pruebas deshabilitadas sin un motivo específico pueden resultar problemáticas a largo plazo porque olvidamos por qué las deshabilitamos.
@Disabled
void ThisTestMethodHasNoDisabledReason () {
Assertions.fail («Esta prueba está deshabilitada y no debe ejecutarse»);
}
El riesgo es que, con el tiempo, la base del código avance, la prueba deshabilitada no se actualice de acuerdo con el propósito del código y, finalmente, se vuelva redundante e irrelevante y, potencialmente, nunca se vuelva a habilitar.
Durante las revisiones del código, solemos señalar que es una buena idea añadir una descripción explicativa como parámetro de anotación.
@Disabled («Desactivado para demostrar la adición de un motivo»)
void ThisTestMethodHasDisabledReason () {
Assertions.fail («Esta prueba está deshabilitada y no debe ejecutarse»);
}
Una receta de Sensei
Podemos escribir una receta para detectar cuándo se añade @Disabled sin explicación y una solución rápida que nos recuerde que debemos añadir el motivo real que explica por qué lo hemos desactivado.
Cuando pienso en lo que voy a hacer, tengo que:
- coincide con la anotación deshabilitada sin ningún parámetro
- cambie la anotación deshabilitada para que tenga un parámetro con el texto de marcador «TODO: agregue una descripción aquí»
Crea una receta de advertencia
Utilizo Alt+Enter para crear una nueva receta.

A continuación, añada el texto descriptivo básico en la información general.

Al convertir la regla en una advertencia, cualquier código coincidente se resalta, pero no se muestra como un error evidente.

Encuentra la anotación
En el editor de recetas, cambio la búsqueda para que coincida con una anotación.
Esto resaltará todas las anotaciones en la vista previa.

Una vez hecho esto, quiero filtrar el tipo de anotación.
Podría usar Disabled, pero califico completamente la clase con el paquete para que solo coincida con la anotación de JUnit 5. Como el código fuente se muestra en la vista previa, puedo copiarlo y pegarlo fácilmente desde el código real para evitar errores tipográficos.
Luego quiero hacer coincidir solo las anotaciones sin parámetros, y puedo usar la GUI para hacerlo.

es decir, buscar:
buscar:
anotación:
tipo: «org.junit.jupiter.api.disabled»
sin:
parámetros:
- {}
Crear una acción de corrección rápida de reescritura
Para mi QuickFix usaré una acción de reescritura.
Yo uso el Mostrar variables funcionalidad para mostrarme las variables de Mustache y previsualizar el contenido.

Y luego agrego el código adicional necesario para crear el comentario del marcador de lugar.

es decir, QuickFix:
Correcciones disponibles:
- nombre: «Añadir un parámetro de comentario de todo»
acciones:
- reescribir:
to: «{{{.}}} (\" TODO: añade una descripción aquí\»)»
objetivo: «yo»
Sensei en acción
Hemos creado un breve vídeo que muestra el proceso de creación de recetas en acción.
Resumen
Al crear una solución rápida de reescritura, es más fácil buscar el elemento de código que queremos reescribir, porque entonces es la entidad propia sobre la que podemos actuar.
En este ejemplo, he utilizado una acción de reescritura para modificar la anotación. La reescritura es una acción de uso general que se puede aplicar a cualquier elemento del código y es una buena opción predeterminada para explorar.

Aprenda a usar Sensei para hacer coincidir patrones de código problemáticos y, a continuación, modificarlos para adaptarlos a las implementaciones acordadas con ejemplos de coincidencia de anotaciones.
Alan Richardson has more than twenty years of professional IT experience, working as a developer and at every level of the testing hierarchy from Tester through to Head of Testing. Head of Developer Relations at Secure Code Warrior, he works directly with teams, to improve the development of quality secure code. Alan is the author of four books including “Dear Evil Tester”, and “Java For Testers”. Alan has also created online training courses to help people learn Technical Web Testing and Selenium WebDriver with Java. Alan posts his writing and training videos on SeleniumSimplified.com, EvilTester.com, JavaForTesters.com, and CompendiumDev.co.uk.

Secure Code Warrior está aquí para que su organización le ayude a proteger el código durante todo el ciclo de vida del desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Ya sea administrador de AppSec, desarrollador, CISO o cualquier persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados con el código inseguro.
Reserva una demostraciónAlan Richardson has more than twenty years of professional IT experience, working as a developer and at every level of the testing hierarchy from Tester through to Head of Testing. Head of Developer Relations at Secure Code Warrior, he works directly with teams, to improve the development of quality secure code. Alan is the author of four books including “Dear Evil Tester”, and “Java For Testers”. Alan has also created online training courses to help people learn Technical Web Testing and Selenium WebDriver with Java. Alan posts his writing and training videos on SeleniumSimplified.com, EvilTester.com, JavaForTesters.com, and CompendiumDev.co.uk.

En esta entrada del blog, haremos lo siguiente:
- Demuestre la búsqueda y la coincidencia de anotaciones
- Anotaciones de amén con plantillas de bigote
Sensei brinda la capacidad de hacer coincidir patrones de código problemáticos y luego modificarlos para adaptarlos a las implementaciones acordadas. En este ejemplo, estoy usando @Disabled sin un parámetro como patrón de código problemático.
Anotación de prueba deshabilitada
Las pruebas deshabilitadas sin un motivo específico pueden resultar problemáticas a largo plazo porque olvidamos por qué las deshabilitamos.
@Disabled
void ThisTestMethodHasNoDisabledReason () {
Assertions.fail («Esta prueba está deshabilitada y no debe ejecutarse»);
}
El riesgo es que, con el tiempo, la base del código avance, la prueba deshabilitada no se actualice de acuerdo con el propósito del código y, finalmente, se vuelva redundante e irrelevante y, potencialmente, nunca se vuelva a habilitar.
Durante las revisiones del código, solemos señalar que es una buena idea añadir una descripción explicativa como parámetro de anotación.
@Disabled («Desactivado para demostrar la adición de un motivo»)
void ThisTestMethodHasDisabledReason () {
Assertions.fail («Esta prueba está deshabilitada y no debe ejecutarse»);
}
Una receta de Sensei
Podemos escribir una receta para detectar cuándo se añade @Disabled sin explicación y una solución rápida que nos recuerde que debemos añadir el motivo real que explica por qué lo hemos desactivado.
Cuando pienso en lo que voy a hacer, tengo que:
- coincide con la anotación deshabilitada sin ningún parámetro
- cambie la anotación deshabilitada para que tenga un parámetro con el texto de marcador «TODO: agregue una descripción aquí»
Crea una receta de advertencia
Utilizo Alt+Enter para crear una nueva receta.

A continuación, añada el texto descriptivo básico en la información general.

Al convertir la regla en una advertencia, cualquier código coincidente se resalta, pero no se muestra como un error evidente.

Encuentra la anotación
En el editor de recetas, cambio la búsqueda para que coincida con una anotación.
Esto resaltará todas las anotaciones en la vista previa.

Una vez hecho esto, quiero filtrar el tipo de anotación.
Podría usar Disabled, pero califico completamente la clase con el paquete para que solo coincida con la anotación de JUnit 5. Como el código fuente se muestra en la vista previa, puedo copiarlo y pegarlo fácilmente desde el código real para evitar errores tipográficos.
Luego quiero hacer coincidir solo las anotaciones sin parámetros, y puedo usar la GUI para hacerlo.

es decir, buscar:
buscar:
anotación:
tipo: «org.junit.jupiter.api.disabled»
sin:
parámetros:
- {}
Crear una acción de corrección rápida de reescritura
Para mi QuickFix usaré una acción de reescritura.
Yo uso el Mostrar variables funcionalidad para mostrarme las variables de Mustache y previsualizar el contenido.

Y luego agrego el código adicional necesario para crear el comentario del marcador de lugar.

es decir, QuickFix:
Correcciones disponibles:
- nombre: «Añadir un parámetro de comentario de todo»
acciones:
- reescribir:
to: «{{{.}}} (\" TODO: añade una descripción aquí\»)»
objetivo: «yo»
Sensei en acción
Hemos creado un breve vídeo que muestra el proceso de creación de recetas en acción.
Resumen
Al crear una solución rápida de reescritura, es más fácil buscar el elemento de código que queremos reescribir, porque entonces es la entidad propia sobre la que podemos actuar.
En este ejemplo, he utilizado una acción de reescritura para modificar la anotación. La reescritura es una acción de uso general que se puede aplicar a cualquier elemento del código y es una buena opción predeterminada para explorar.
En esta entrada del blog, haremos lo siguiente:
- Demuestre la búsqueda y la coincidencia de anotaciones
- Anotaciones de amén con plantillas de bigote
Sensei brinda la capacidad de hacer coincidir patrones de código problemáticos y luego modificarlos para adaptarlos a las implementaciones acordadas. En este ejemplo, estoy usando @Disabled sin un parámetro como patrón de código problemático.
Anotación de prueba deshabilitada
Las pruebas deshabilitadas sin un motivo específico pueden resultar problemáticas a largo plazo porque olvidamos por qué las deshabilitamos.
@Disabled
void ThisTestMethodHasNoDisabledReason () {
Assertions.fail («Esta prueba está deshabilitada y no debe ejecutarse»);
}
El riesgo es que, con el tiempo, la base del código avance, la prueba deshabilitada no se actualice de acuerdo con el propósito del código y, finalmente, se vuelva redundante e irrelevante y, potencialmente, nunca se vuelva a habilitar.
Durante las revisiones del código, solemos señalar que es una buena idea añadir una descripción explicativa como parámetro de anotación.
@Disabled («Desactivado para demostrar la adición de un motivo»)
void ThisTestMethodHasDisabledReason () {
Assertions.fail («Esta prueba está deshabilitada y no debe ejecutarse»);
}
Una receta de Sensei
Podemos escribir una receta para detectar cuándo se añade @Disabled sin explicación y una solución rápida que nos recuerde que debemos añadir el motivo real que explica por qué lo hemos desactivado.
Cuando pienso en lo que voy a hacer, tengo que:
- coincide con la anotación deshabilitada sin ningún parámetro
- cambie la anotación deshabilitada para que tenga un parámetro con el texto de marcador «TODO: agregue una descripción aquí»
Crea una receta de advertencia
Utilizo Alt+Enter para crear una nueva receta.

A continuación, añada el texto descriptivo básico en la información general.

Al convertir la regla en una advertencia, cualquier código coincidente se resalta, pero no se muestra como un error evidente.

Encuentra la anotación
En el editor de recetas, cambio la búsqueda para que coincida con una anotación.
Esto resaltará todas las anotaciones en la vista previa.

Una vez hecho esto, quiero filtrar el tipo de anotación.
Podría usar Disabled, pero califico completamente la clase con el paquete para que solo coincida con la anotación de JUnit 5. Como el código fuente se muestra en la vista previa, puedo copiarlo y pegarlo fácilmente desde el código real para evitar errores tipográficos.
Luego quiero hacer coincidir solo las anotaciones sin parámetros, y puedo usar la GUI para hacerlo.

es decir, buscar:
buscar:
anotación:
tipo: «org.junit.jupiter.api.disabled»
sin:
parámetros:
- {}
Crear una acción de corrección rápida de reescritura
Para mi QuickFix usaré una acción de reescritura.
Yo uso el Mostrar variables funcionalidad para mostrarme las variables de Mustache y previsualizar el contenido.

Y luego agrego el código adicional necesario para crear el comentario del marcador de lugar.

es decir, QuickFix:
Correcciones disponibles:
- nombre: «Añadir un parámetro de comentario de todo»
acciones:
- reescribir:
to: «{{{.}}} (\" TODO: añade una descripción aquí\»)»
objetivo: «yo»
Sensei en acción
Hemos creado un breve vídeo que muestra el proceso de creación de recetas en acción.
Resumen
Al crear una solución rápida de reescritura, es más fácil buscar el elemento de código que queremos reescribir, porque entonces es la entidad propia sobre la que podemos actuar.
En este ejemplo, he utilizado una acción de reescritura para modificar la anotación. La reescritura es una acción de uso general que se puede aplicar a cualquier elemento del código y es una buena opción predeterminada para explorar.

Haga clic en el enlace de abajo y descargue el PDF de este recurso.
Secure Code Warrior está aquí para que su organización le ayude a proteger el código durante todo el ciclo de vida del desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Ya sea administrador de AppSec, desarrollador, CISO o cualquier persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados con el código inseguro.
Ver informeReserva una demostraciónAlan Richardson has more than twenty years of professional IT experience, working as a developer and at every level of the testing hierarchy from Tester through to Head of Testing. Head of Developer Relations at Secure Code Warrior, he works directly with teams, to improve the development of quality secure code. Alan is the author of four books including “Dear Evil Tester”, and “Java For Testers”. Alan has also created online training courses to help people learn Technical Web Testing and Selenium WebDriver with Java. Alan posts his writing and training videos on SeleniumSimplified.com, EvilTester.com, JavaForTesters.com, and CompendiumDev.co.uk.
En esta entrada del blog, haremos lo siguiente:
- Demuestre la búsqueda y la coincidencia de anotaciones
- Anotaciones de amén con plantillas de bigote
Sensei brinda la capacidad de hacer coincidir patrones de código problemáticos y luego modificarlos para adaptarlos a las implementaciones acordadas. En este ejemplo, estoy usando @Disabled sin un parámetro como patrón de código problemático.
Anotación de prueba deshabilitada
Las pruebas deshabilitadas sin un motivo específico pueden resultar problemáticas a largo plazo porque olvidamos por qué las deshabilitamos.
@Disabled
void ThisTestMethodHasNoDisabledReason () {
Assertions.fail («Esta prueba está deshabilitada y no debe ejecutarse»);
}
El riesgo es que, con el tiempo, la base del código avance, la prueba deshabilitada no se actualice de acuerdo con el propósito del código y, finalmente, se vuelva redundante e irrelevante y, potencialmente, nunca se vuelva a habilitar.
Durante las revisiones del código, solemos señalar que es una buena idea añadir una descripción explicativa como parámetro de anotación.
@Disabled («Desactivado para demostrar la adición de un motivo»)
void ThisTestMethodHasDisabledReason () {
Assertions.fail («Esta prueba está deshabilitada y no debe ejecutarse»);
}
Una receta de Sensei
Podemos escribir una receta para detectar cuándo se añade @Disabled sin explicación y una solución rápida que nos recuerde que debemos añadir el motivo real que explica por qué lo hemos desactivado.
Cuando pienso en lo que voy a hacer, tengo que:
- coincide con la anotación deshabilitada sin ningún parámetro
- cambie la anotación deshabilitada para que tenga un parámetro con el texto de marcador «TODO: agregue una descripción aquí»
Crea una receta de advertencia
Utilizo Alt+Enter para crear una nueva receta.

A continuación, añada el texto descriptivo básico en la información general.

Al convertir la regla en una advertencia, cualquier código coincidente se resalta, pero no se muestra como un error evidente.

Encuentra la anotación
En el editor de recetas, cambio la búsqueda para que coincida con una anotación.
Esto resaltará todas las anotaciones en la vista previa.

Una vez hecho esto, quiero filtrar el tipo de anotación.
Podría usar Disabled, pero califico completamente la clase con el paquete para que solo coincida con la anotación de JUnit 5. Como el código fuente se muestra en la vista previa, puedo copiarlo y pegarlo fácilmente desde el código real para evitar errores tipográficos.
Luego quiero hacer coincidir solo las anotaciones sin parámetros, y puedo usar la GUI para hacerlo.

es decir, buscar:
buscar:
anotación:
tipo: «org.junit.jupiter.api.disabled»
sin:
parámetros:
- {}
Crear una acción de corrección rápida de reescritura
Para mi QuickFix usaré una acción de reescritura.
Yo uso el Mostrar variables funcionalidad para mostrarme las variables de Mustache y previsualizar el contenido.

Y luego agrego el código adicional necesario para crear el comentario del marcador de lugar.

es decir, QuickFix:
Correcciones disponibles:
- nombre: «Añadir un parámetro de comentario de todo»
acciones:
- reescribir:
to: «{{{.}}} (\" TODO: añade una descripción aquí\»)»
objetivo: «yo»
Sensei en acción
Hemos creado un breve vídeo que muestra el proceso de creación de recetas en acción.
Resumen
Al crear una solución rápida de reescritura, es más fácil buscar el elemento de código que queremos reescribir, porque entonces es la entidad propia sobre la que podemos actuar.
En este ejemplo, he utilizado una acción de reescritura para modificar la anotación. La reescritura es una acción de uso general que se puede aplicar a cualquier elemento del código y es una buena opción predeterminada para explorar.
Tabla de contenido
Alan Richardson has more than twenty years of professional IT experience, working as a developer and at every level of the testing hierarchy from Tester through to Head of Testing. Head of Developer Relations at Secure Code Warrior, he works directly with teams, to improve the development of quality secure code. Alan is the author of four books including “Dear Evil Tester”, and “Java For Testers”. Alan has also created online training courses to help people learn Technical Web Testing and Selenium WebDriver with Java. Alan posts his writing and training videos on SeleniumSimplified.com, EvilTester.com, JavaForTesters.com, and CompendiumDev.co.uk.

Secure Code Warrior está aquí para que su organización le ayude a proteger el código durante todo el ciclo de vida del desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Ya sea administrador de AppSec, desarrollador, CISO o cualquier persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados con el código inseguro.
Reserva una demostraciónDescargarRecursos para empezar
Temas y contenido de formación sobre código seguro
Nuestro contenido líder en la industria siempre está evolucionando para adaptarse al cambiante panorama del desarrollo de software teniendo en cuenta su función. Se ofrecen temas que abarcan desde la IA hasta la inyección de XQuery para distintos puestos, desde arquitectos e ingenieros hasta directores de productos y control de calidad. Obtenga un adelanto de lo que ofrece nuestro catálogo de contenido por tema y función.
Threat Modeling with AI: Turning Every Developer into a Threat Modeler
Walk away better equipped to help developers combine threat modeling ideas and techniques with the AI tools they're already using to strengthen security, improve collaboration, and build more resilient software from the start.
Recursos para empezar
Cybermon está de vuelta: las misiones de IA de Beat the Boss ya están disponibles bajo demanda
Cybermon 2025 Beat the Boss ya está disponible durante todo el año en SCW. Implemente desafíos de seguridad avanzados de IA y LLM para fortalecer el desarrollo seguro de la IA a gran escala.
Explicación de la Ley de Ciberresiliencia: qué significa para el desarrollo de software seguro por diseño
Descubra qué exige la Ley de Ciberresiliencia (CRA) de la UE, a quién se aplica y cómo los equipos de ingeniería pueden prepararse con prácticas de diseño seguras, prevención de vulnerabilidades y desarrollo de capacidades para desarrolladores.
Habilitador 1: Criterios de éxito definidos y medibles
Enabler 1 da inicio a nuestra serie Enablers of Success, de 10 partes, mostrando cómo vincular la codificación segura con los resultados empresariales, como la reducción del riesgo y la velocidad para lograr la madurez del programa a largo plazo.




%20(1).avif)
.avif)
