
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 cuenta con más de veinte años de experiencia profesional en TI, trabajando como desarrollador y en todos los niveles de la jerarquía de pruebas, desde probador hasta jefe de pruebas. Jefe de Relaciones con los Desarrolladores en Secure Code Warrior, trabaja directamente con los equipos, para mejorar el desarrollo de un código seguro de calidad. Alan es autor de cuatro libros, entre ellos "Dear Evil Tester" y "Java For Testers". Alan también ha creado una formación en línea courses para ayudar a la gente a aprender las pruebas técnicas de la web y Selenium WebDriver con Java. Alan publica sus escritos y vídeos de formación en SeleniumSimplified.com, EvilTester.com, JavaForTesters.com, y CompendiumDev.co.uk.

Secure Code Warrior 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.
Reserve una demostraciónAlan Richardson cuenta con más de veinte años de experiencia profesional en TI, trabajando como desarrollador y en todos los niveles de la jerarquía de pruebas, desde probador hasta jefe de pruebas. Jefe de Relaciones con los Desarrolladores en Secure Code Warrior, trabaja directamente con los equipos, para mejorar el desarrollo de un código seguro de calidad. Alan es autor de cuatro libros, entre ellos "Dear Evil Tester" y "Java For Testers". Alan también ha creado una formación en línea courses para ayudar a la gente a aprender las pruebas técnicas de la web y Selenium WebDriver con Java. Alan publica sus escritos y vídeos de formación en SeleniumSimplified.com, EvilTester.com, JavaForTesters.com, y 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 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 informeReserve una demostraciónAlan Richardson cuenta con más de veinte años de experiencia profesional en TI, trabajando como desarrollador y en todos los niveles de la jerarquía de pruebas, desde probador hasta jefe de pruebas. Jefe de Relaciones con los Desarrolladores en Secure Code Warrior, trabaja directamente con los equipos, para mejorar el desarrollo de un código seguro de calidad. Alan es autor de cuatro libros, entre ellos "Dear Evil Tester" y "Java For Testers". Alan también ha creado una formación en línea courses para ayudar a la gente a aprender las pruebas técnicas de la web y Selenium WebDriver con Java. Alan publica sus escritos y vídeos de formación en SeleniumSimplified.com, EvilTester.com, JavaForTesters.com, y 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 cuenta con más de veinte años de experiencia profesional en TI, trabajando como desarrollador y en todos los niveles de la jerarquía de pruebas, desde probador hasta jefe de pruebas. Jefe de Relaciones con los Desarrolladores en Secure Code Warrior, trabaja directamente con los equipos, para mejorar el desarrollo de un código seguro de calidad. Alan es autor de cuatro libros, entre ellos "Dear Evil Tester" y "Java For Testers". Alan también ha creado una formación en línea courses para ayudar a la gente a aprender las pruebas técnicas de la web y Selenium WebDriver con Java. Alan publica sus escritos y vídeos de formación en SeleniumSimplified.com, EvilTester.com, JavaForTesters.com, y CompendiumDev.co.uk.

Secure Code Warrior 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.
Reserve 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.
La Cámara de Comercio establece el estándar para la seguridad impulsada por desarrolladores a gran escala
Kamer van Koophandel comparte cómo ha integrado la codificación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de Trust Score y una cultura de responsabilidad compartida en materia de seguridad.
Modelado de amenazas con IA: convertir a cada desarrollador en un modelador de amenazas
Saldrá mejor equipado para ayudar a los desarrolladores a combinar ideas y técnicas de modelado de amenazas con las herramientas de IA que ya utilizan para reforzar la seguridad, mejorar la colaboración y crear software más resistente desde el principio.
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.
Facilitador 1: Criterios de éxito definidos y medibles
El habilitador 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)
