Haga que las pruebas unitarias sean legibles con Sensei y AssertJ
Los desarrolladores crean y prueban su propio código con varios métodos. Uno de ellos es la prueba unitaria, un método muy popular para probar las partes más pequeñas del propio código. Cuando se escriben bien, las pruebas unitarias pueden ayudar a mejorar la calidad del código, así como a reducir los costes y el tiempo de desarrollo. Tanto si se hacen como parte del desarrollo dirigido por pruebas (TDD) como si no, las pruebas unitarias son una parte clave de las prácticas de desarrollo modernas y su importancia ha llevado a la creación de muchos marcos de pruebas.
Pero en ausencia de un marco de pruebas y una guía adecuados, las pruebas unitarias pueden volverse complejas e ilegibles, ya que el enfoque se centra en la cobertura y la cantidad en lugar de la calidad y la legibilidad. Esto es especialmente cierto en un código base grande y activo con muchas pruebas unitarias.
Un buen marco de pruebas ayuda a crear buenas pruebas legibles que son simples y se centran en las pruebas de calidad. También ayudan a documentar la forma de utilizar su código. Uno de estos marcos es AssertJ.
AssertJ es una API fluida para escribir pruebas unitarias en Java. Le permite escribir aserciones de prueba que se leen como si estuvieran en inglés, con autocompletado consciente del contexto. Si tienes un gran número de pruebas y necesitas mejorar su legibilidad, es posible que desees migrar todas ellas a AssertJ y también asegurarte de que todas las pruebas futuras están aprovechando al máximo AssertJ.
Pero la migración completa puede llevar un enorme esfuerzo y tiempo para hacerla manualmente, por lo que a menudo se omite o se pospone para otras tareas de desarrollo. Así que hemos creado Sensei - un plugin de IntelliJ altamente personalizable que puede ayudar a migrar tus pruebas unitarias actuales para utilizar AssertJ, así como permitir que todas las pruebas futuras se escriban de la manera correcta. Esto se hace con una serie de recetas (reglas) ya creadas para ti por el equipo de desarrollo de Sensei. Sensei hace que sea fácil realizar una migración única o tomar el enfoque de hacer migraciones incrementales a AssertJ, una prueba a la vez. Una vez que se ha migrado a AssertJ, las recetas siguen ayudando a los desarrolladores a aplicar correcciones rápidas a medida que escriben pruebas unitarias, de modo que sus pruebas unitarias siguen siendo uniformes, estándar y consistentes en todo el código base.
Acerca de Sensei
Sensei es un plugin de IntelliJ altamente personalizable para escanear y arreglar código indeseable mientras se escribe, con cientos de transformaciones de código descargables y recetas de migración (reglas), así como una capacidad incorporada para crear las propias. Con Sensei, los desarrolladores pueden remediar los malos patrones de código mientras escriben, de modo que puedan entregar código de calidad más rápidamente y, en última instancia, escribirlo de forma coherente y estándar en todos los equipos y proyectos.
Aquí hay un ejemplo de una migración de muestra que puede ayudarte a ver cómo Sensei hace que sea fácil migrar tus pruebas unitarias para usar AssertJ.
Por qué AssertJ es un gran marco para escribir pruebas unitarias
En lugar de escribir una prueba como esta aserción de JUnit:
puedes escribir esto con AssertJ:
Esto significa que puedes leer la aserción de izquierda a derecha como una frase en inglés, y queda claro cuál es la expectativa (en este caso, el tamaño 3). ¿Cuántas veces has escrito una aserción al revés, así?
Estos son sólo ejemplos sencillos. Cuanto más complejas sean tus comprobaciones y aserciones, más te ayudará AssertJ a hacer tus pruebas simples y legibles. Funciona muy bien con el autocompletado de tu IDE. Tan pronto como escribas:
aparecerá con todas las cosas que puedes comprobar, según el tipo de miResultado. Si es una colección, puedes comprobar su contenido, su tamaño, si contiene ciertos valores o tipos, etc.
AssertJ tiene soporte para primitivas y sus tipos de caja, tipos atómicos, colecciones, arrays, mapas, fechas, java.time, futuros, archivos/rutas, flujos de entrada, lanzables y URLs. Y si tienes un Matcher personalizado favorito para Hamcrest, puedes utilizarlo con AssertJ a través de HamcrestCondition.
Las pruebas unitarias legibles facilitan a los desarrolladores la lectura del código en inglés normal y, por lo tanto, facilitan la detección de errores, así como el aumento de la cobertura, lo que convierte a AssertJ en un marco indispensable para las buenas pruebas unitarias de Java.
Recetas para trasladar las pruebas unitarias heredadas a AssertJ
Hemos escrito un libro de cocina para ayudarte a escribir código consistente con AssertJ. Puede ayudarte a migrar tus aserciones a AssertJ desde cualquiera de estos frameworks: JUnit 3, JUnit 4, JUnit 5 y FEST-Assert.
Este libro de cocina puede configurarse en Sensei para su uso inmediato y puede encontrar las instrucciones de instalación para Sensei aquí.
Escriba mejores pruebas unitarias a medida que codifica: mejore la calidad de JUnit progresivamente
El libro de cocina Sensei para AssertJ no sólo te ayuda a migrar desde otros frameworks. Tiene algunas recetas que pueden ayudarte a mejorar tu escritura de pruebas, romper viejos hábitos y escribir pruebas AssertJ más idiomáticas.
Por ejemplo, supongamos que ha escrito una prueba con el siguiente aspecto:
Tal vez incluso lo haya migrado utilizando una de las recetas de migración anteriores, a partir de esta aserción de estilo JUnit:
El libro de cocina Sensei para AssertJ tiene una receta que también puede detectar este viejo estilo de aserción, y ofrecer convertirlo en esto:
Otra receta puede convertir lo siguiente de:
a esto:
Una migración única y prácticas de codificación uniformes en todos los equipos, con Sensei
Podemos ver en nuestros ejemplos anteriores, que la migración manual de las pruebas unitarias para usar AssertJ puede implicar mucho esfuerzo y tiempo que es mejor invertir en escribir mejores pruebas. Utilizando Sensei, puedes migrar fácilmente tus pruebas unitarias a AssertJ con confianza. Puedes realizar una migración de una sola vez, o migrar pruebas individuales a AssertJ a medida que las encuentres. Sensei proporciona este tipo de flexibilidad que hace que las migraciones de código sean menos dolorosas.
La migración de pruebas unitarias es sólo un ejemplo de las muchas maneras en que Sensei puede utilizarse para escribir código coherente en todos tus proyectos. Siempre puedes estar atento a los anti-patrones o a ciertas transformaciones manuales de código que encuentras con frecuencia en los pull requests o mientras codificas tú mismo. Si tienes un conjunto de directrices de codificación que los desarrolladores no suelen tener en cuenta, puedes convertir las directrices en recetas, permitiendo a los desarrolladores aplicar transformaciones de código aprobadas con confianza.
Si tienes alguna pregunta, nos encantaría que nos la hicieras llegar. Únase a nosotros en Slack en: sensei-scw.slack.com
Aplicar las directrices de codificación de las pruebas unitarias de manera uniforme y coherente
Sean es un ingeniero de software senior en Secure Code Warrior. Cuenta con más de una década de experiencia en desarrollo, centrada en ayudar a los desarrolladores a producir mejor software, y ha contribuido a varios proyectos de código abierto.
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónSean es un ingeniero de software senior en Secure Code Warrior. Cuenta con más de una década de experiencia en desarrollo, centrada en ayudar a los desarrolladores a producir mejor software, y ha contribuido a varios proyectos de código abierto.
Los desarrolladores crean y prueban su propio código con varios métodos. Uno de ellos es la prueba unitaria, un método muy popular para probar las partes más pequeñas del propio código. Cuando se escriben bien, las pruebas unitarias pueden ayudar a mejorar la calidad del código, así como a reducir los costes y el tiempo de desarrollo. Tanto si se hacen como parte del desarrollo dirigido por pruebas (TDD) como si no, las pruebas unitarias son una parte clave de las prácticas de desarrollo modernas y su importancia ha llevado a la creación de muchos marcos de pruebas.
Pero en ausencia de un marco de pruebas y una guía adecuados, las pruebas unitarias pueden volverse complejas e ilegibles, ya que el enfoque se centra en la cobertura y la cantidad en lugar de la calidad y la legibilidad. Esto es especialmente cierto en un código base grande y activo con muchas pruebas unitarias.
Un buen marco de pruebas ayuda a crear buenas pruebas legibles que son simples y se centran en las pruebas de calidad. También ayudan a documentar la forma de utilizar su código. Uno de estos marcos es AssertJ.
AssertJ es una API fluida para escribir pruebas unitarias en Java. Le permite escribir aserciones de prueba que se leen como si estuvieran en inglés, con autocompletado consciente del contexto. Si tienes un gran número de pruebas y necesitas mejorar su legibilidad, es posible que desees migrar todas ellas a AssertJ y también asegurarte de que todas las pruebas futuras están aprovechando al máximo AssertJ.
Pero la migración completa puede llevar un enorme esfuerzo y tiempo para hacerla manualmente, por lo que a menudo se omite o se pospone para otras tareas de desarrollo. Así que hemos creado Sensei - un plugin de IntelliJ altamente personalizable que puede ayudar a migrar tus pruebas unitarias actuales para utilizar AssertJ, así como permitir que todas las pruebas futuras se escriban de la manera correcta. Esto se hace con una serie de recetas (reglas) ya creadas para ti por el equipo de desarrollo de Sensei. Sensei hace que sea fácil realizar una migración única o tomar el enfoque de hacer migraciones incrementales a AssertJ, una prueba a la vez. Una vez que se ha migrado a AssertJ, las recetas siguen ayudando a los desarrolladores a aplicar correcciones rápidas a medida que escriben pruebas unitarias, de modo que sus pruebas unitarias siguen siendo uniformes, estándar y consistentes en todo el código base.
Acerca de Sensei
Sensei es un plugin de IntelliJ altamente personalizable para escanear y arreglar código indeseable mientras se escribe, con cientos de transformaciones de código descargables y recetas de migración (reglas), así como una capacidad incorporada para crear las propias. Con Sensei, los desarrolladores pueden remediar los malos patrones de código mientras escriben, de modo que puedan entregar código de calidad más rápidamente y, en última instancia, escribirlo de forma coherente y estándar en todos los equipos y proyectos.
Aquí hay un ejemplo de una migración de muestra que puede ayudarte a ver cómo Sensei hace que sea fácil migrar tus pruebas unitarias para usar AssertJ.
Por qué AssertJ es un gran marco para escribir pruebas unitarias
En lugar de escribir una prueba como esta aserción de JUnit:
puedes escribir esto con AssertJ:
Esto significa que puedes leer la aserción de izquierda a derecha como una frase en inglés, y queda claro cuál es la expectativa (en este caso, el tamaño 3). ¿Cuántas veces has escrito una aserción al revés, así?
Estos son sólo ejemplos sencillos. Cuanto más complejas sean tus comprobaciones y aserciones, más te ayudará AssertJ a hacer tus pruebas simples y legibles. Funciona muy bien con el autocompletado de tu IDE. Tan pronto como escribas:
aparecerá con todas las cosas que puedes comprobar, según el tipo de miResultado. Si es una colección, puedes comprobar su contenido, su tamaño, si contiene ciertos valores o tipos, etc.
AssertJ tiene soporte para primitivas y sus tipos de caja, tipos atómicos, colecciones, arrays, mapas, fechas, java.time, futuros, archivos/rutas, flujos de entrada, lanzables y URLs. Y si tienes un Matcher personalizado favorito para Hamcrest, puedes utilizarlo con AssertJ a través de HamcrestCondition.
Las pruebas unitarias legibles facilitan a los desarrolladores la lectura del código en inglés normal y, por lo tanto, facilitan la detección de errores, así como el aumento de la cobertura, lo que convierte a AssertJ en un marco indispensable para las buenas pruebas unitarias de Java.
Recetas para trasladar las pruebas unitarias heredadas a AssertJ
Hemos escrito un libro de cocina para ayudarte a escribir código consistente con AssertJ. Puede ayudarte a migrar tus aserciones a AssertJ desde cualquiera de estos frameworks: JUnit 3, JUnit 4, JUnit 5 y FEST-Assert.
Este libro de cocina puede configurarse en Sensei para su uso inmediato y puede encontrar las instrucciones de instalación para Sensei aquí.
Escriba mejores pruebas unitarias a medida que codifica: mejore la calidad de JUnit progresivamente
El libro de cocina Sensei para AssertJ no sólo te ayuda a migrar desde otros frameworks. Tiene algunas recetas que pueden ayudarte a mejorar tu escritura de pruebas, romper viejos hábitos y escribir pruebas AssertJ más idiomáticas.
Por ejemplo, supongamos que ha escrito una prueba con el siguiente aspecto:
Tal vez incluso lo haya migrado utilizando una de las recetas de migración anteriores, a partir de esta aserción de estilo JUnit:
El libro de cocina Sensei para AssertJ tiene una receta que también puede detectar este viejo estilo de aserción, y ofrecer convertirlo en esto:
Otra receta puede convertir lo siguiente de:
a esto:
Una migración única y prácticas de codificación uniformes en todos los equipos, con Sensei
Podemos ver en nuestros ejemplos anteriores, que la migración manual de las pruebas unitarias para usar AssertJ puede implicar mucho esfuerzo y tiempo que es mejor invertir en escribir mejores pruebas. Utilizando Sensei, puedes migrar fácilmente tus pruebas unitarias a AssertJ con confianza. Puedes realizar una migración de una sola vez, o migrar pruebas individuales a AssertJ a medida que las encuentres. Sensei proporciona este tipo de flexibilidad que hace que las migraciones de código sean menos dolorosas.
La migración de pruebas unitarias es sólo un ejemplo de las muchas maneras en que Sensei puede utilizarse para escribir código coherente en todos tus proyectos. Siempre puedes estar atento a los anti-patrones o a ciertas transformaciones manuales de código que encuentras con frecuencia en los pull requests o mientras codificas tú mismo. Si tienes un conjunto de directrices de codificación que los desarrolladores no suelen tener en cuenta, puedes convertir las directrices en recetas, permitiendo a los desarrolladores aplicar transformaciones de código aprobadas con confianza.
Si tienes alguna pregunta, nos encantaría que nos la hicieras llegar. Únase a nosotros en Slack en: sensei-scw.slack.com
Los desarrolladores crean y prueban su propio código con varios métodos. Uno de ellos es la prueba unitaria, un método muy popular para probar las partes más pequeñas del propio código. Cuando se escriben bien, las pruebas unitarias pueden ayudar a mejorar la calidad del código, así como a reducir los costes y el tiempo de desarrollo. Tanto si se hacen como parte del desarrollo dirigido por pruebas (TDD) como si no, las pruebas unitarias son una parte clave de las prácticas de desarrollo modernas y su importancia ha llevado a la creación de muchos marcos de pruebas.
Pero en ausencia de un marco de pruebas y una guía adecuados, las pruebas unitarias pueden volverse complejas e ilegibles, ya que el enfoque se centra en la cobertura y la cantidad en lugar de la calidad y la legibilidad. Esto es especialmente cierto en un código base grande y activo con muchas pruebas unitarias.
Un buen marco de pruebas ayuda a crear buenas pruebas legibles que son simples y se centran en las pruebas de calidad. También ayudan a documentar la forma de utilizar su código. Uno de estos marcos es AssertJ.
AssertJ es una API fluida para escribir pruebas unitarias en Java. Le permite escribir aserciones de prueba que se leen como si estuvieran en inglés, con autocompletado consciente del contexto. Si tienes un gran número de pruebas y necesitas mejorar su legibilidad, es posible que desees migrar todas ellas a AssertJ y también asegurarte de que todas las pruebas futuras están aprovechando al máximo AssertJ.
Pero la migración completa puede llevar un enorme esfuerzo y tiempo para hacerla manualmente, por lo que a menudo se omite o se pospone para otras tareas de desarrollo. Así que hemos creado Sensei - un plugin de IntelliJ altamente personalizable que puede ayudar a migrar tus pruebas unitarias actuales para utilizar AssertJ, así como permitir que todas las pruebas futuras se escriban de la manera correcta. Esto se hace con una serie de recetas (reglas) ya creadas para ti por el equipo de desarrollo de Sensei. Sensei hace que sea fácil realizar una migración única o tomar el enfoque de hacer migraciones incrementales a AssertJ, una prueba a la vez. Una vez que se ha migrado a AssertJ, las recetas siguen ayudando a los desarrolladores a aplicar correcciones rápidas a medida que escriben pruebas unitarias, de modo que sus pruebas unitarias siguen siendo uniformes, estándar y consistentes en todo el código base.
Acerca de Sensei
Sensei es un plugin de IntelliJ altamente personalizable para escanear y arreglar código indeseable mientras se escribe, con cientos de transformaciones de código descargables y recetas de migración (reglas), así como una capacidad incorporada para crear las propias. Con Sensei, los desarrolladores pueden remediar los malos patrones de código mientras escriben, de modo que puedan entregar código de calidad más rápidamente y, en última instancia, escribirlo de forma coherente y estándar en todos los equipos y proyectos.
Aquí hay un ejemplo de una migración de muestra que puede ayudarte a ver cómo Sensei hace que sea fácil migrar tus pruebas unitarias para usar AssertJ.
Por qué AssertJ es un gran marco para escribir pruebas unitarias
En lugar de escribir una prueba como esta aserción de JUnit:
puedes escribir esto con AssertJ:
Esto significa que puedes leer la aserción de izquierda a derecha como una frase en inglés, y queda claro cuál es la expectativa (en este caso, el tamaño 3). ¿Cuántas veces has escrito una aserción al revés, así?
Estos son sólo ejemplos sencillos. Cuanto más complejas sean tus comprobaciones y aserciones, más te ayudará AssertJ a hacer tus pruebas simples y legibles. Funciona muy bien con el autocompletado de tu IDE. Tan pronto como escribas:
aparecerá con todas las cosas que puedes comprobar, según el tipo de miResultado. Si es una colección, puedes comprobar su contenido, su tamaño, si contiene ciertos valores o tipos, etc.
AssertJ tiene soporte para primitivas y sus tipos de caja, tipos atómicos, colecciones, arrays, mapas, fechas, java.time, futuros, archivos/rutas, flujos de entrada, lanzables y URLs. Y si tienes un Matcher personalizado favorito para Hamcrest, puedes utilizarlo con AssertJ a través de HamcrestCondition.
Las pruebas unitarias legibles facilitan a los desarrolladores la lectura del código en inglés normal y, por lo tanto, facilitan la detección de errores, así como el aumento de la cobertura, lo que convierte a AssertJ en un marco indispensable para las buenas pruebas unitarias de Java.
Recetas para trasladar las pruebas unitarias heredadas a AssertJ
Hemos escrito un libro de cocina para ayudarte a escribir código consistente con AssertJ. Puede ayudarte a migrar tus aserciones a AssertJ desde cualquiera de estos frameworks: JUnit 3, JUnit 4, JUnit 5 y FEST-Assert.
Este libro de cocina puede configurarse en Sensei para su uso inmediato y puede encontrar las instrucciones de instalación para Sensei aquí.
Escriba mejores pruebas unitarias a medida que codifica: mejore la calidad de JUnit progresivamente
El libro de cocina Sensei para AssertJ no sólo te ayuda a migrar desde otros frameworks. Tiene algunas recetas que pueden ayudarte a mejorar tu escritura de pruebas, romper viejos hábitos y escribir pruebas AssertJ más idiomáticas.
Por ejemplo, supongamos que ha escrito una prueba con el siguiente aspecto:
Tal vez incluso lo haya migrado utilizando una de las recetas de migración anteriores, a partir de esta aserción de estilo JUnit:
El libro de cocina Sensei para AssertJ tiene una receta que también puede detectar este viejo estilo de aserción, y ofrecer convertirlo en esto:
Otra receta puede convertir lo siguiente de:
a esto:
Una migración única y prácticas de codificación uniformes en todos los equipos, con Sensei
Podemos ver en nuestros ejemplos anteriores, que la migración manual de las pruebas unitarias para usar AssertJ puede implicar mucho esfuerzo y tiempo que es mejor invertir en escribir mejores pruebas. Utilizando Sensei, puedes migrar fácilmente tus pruebas unitarias a AssertJ con confianza. Puedes realizar una migración de una sola vez, o migrar pruebas individuales a AssertJ a medida que las encuentres. Sensei proporciona este tipo de flexibilidad que hace que las migraciones de código sean menos dolorosas.
La migración de pruebas unitarias es sólo un ejemplo de las muchas maneras en que Sensei puede utilizarse para escribir código coherente en todos tus proyectos. Siempre puedes estar atento a los anti-patrones o a ciertas transformaciones manuales de código que encuentras con frecuencia en los pull requests o mientras codificas tú mismo. Si tienes un conjunto de directrices de codificación que los desarrolladores no suelen tener en cuenta, puedes convertir las directrices en recetas, permitiendo a los desarrolladores aplicar transformaciones de código aprobadas con confianza.
Si tienes alguna pregunta, nos encantaría que nos la hicieras llegar. Únase a nosotros en Slack en: sensei-scw.slack.com
Haga clic en el siguiente enlace y descargue el PDF de este recurso.
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Ver el informeReservar una demostraciónSean es un ingeniero de software senior en Secure Code Warrior. Cuenta con más de una década de experiencia en desarrollo, centrada en ayudar a los desarrolladores a producir mejor software, y ha contribuido a varios proyectos de código abierto.
Los desarrolladores crean y prueban su propio código con varios métodos. Uno de ellos es la prueba unitaria, un método muy popular para probar las partes más pequeñas del propio código. Cuando se escriben bien, las pruebas unitarias pueden ayudar a mejorar la calidad del código, así como a reducir los costes y el tiempo de desarrollo. Tanto si se hacen como parte del desarrollo dirigido por pruebas (TDD) como si no, las pruebas unitarias son una parte clave de las prácticas de desarrollo modernas y su importancia ha llevado a la creación de muchos marcos de pruebas.
Pero en ausencia de un marco de pruebas y una guía adecuados, las pruebas unitarias pueden volverse complejas e ilegibles, ya que el enfoque se centra en la cobertura y la cantidad en lugar de la calidad y la legibilidad. Esto es especialmente cierto en un código base grande y activo con muchas pruebas unitarias.
Un buen marco de pruebas ayuda a crear buenas pruebas legibles que son simples y se centran en las pruebas de calidad. También ayudan a documentar la forma de utilizar su código. Uno de estos marcos es AssertJ.
AssertJ es una API fluida para escribir pruebas unitarias en Java. Le permite escribir aserciones de prueba que se leen como si estuvieran en inglés, con autocompletado consciente del contexto. Si tienes un gran número de pruebas y necesitas mejorar su legibilidad, es posible que desees migrar todas ellas a AssertJ y también asegurarte de que todas las pruebas futuras están aprovechando al máximo AssertJ.
Pero la migración completa puede llevar un enorme esfuerzo y tiempo para hacerla manualmente, por lo que a menudo se omite o se pospone para otras tareas de desarrollo. Así que hemos creado Sensei - un plugin de IntelliJ altamente personalizable que puede ayudar a migrar tus pruebas unitarias actuales para utilizar AssertJ, así como permitir que todas las pruebas futuras se escriban de la manera correcta. Esto se hace con una serie de recetas (reglas) ya creadas para ti por el equipo de desarrollo de Sensei. Sensei hace que sea fácil realizar una migración única o tomar el enfoque de hacer migraciones incrementales a AssertJ, una prueba a la vez. Una vez que se ha migrado a AssertJ, las recetas siguen ayudando a los desarrolladores a aplicar correcciones rápidas a medida que escriben pruebas unitarias, de modo que sus pruebas unitarias siguen siendo uniformes, estándar y consistentes en todo el código base.
Acerca de Sensei
Sensei es un plugin de IntelliJ altamente personalizable para escanear y arreglar código indeseable mientras se escribe, con cientos de transformaciones de código descargables y recetas de migración (reglas), así como una capacidad incorporada para crear las propias. Con Sensei, los desarrolladores pueden remediar los malos patrones de código mientras escriben, de modo que puedan entregar código de calidad más rápidamente y, en última instancia, escribirlo de forma coherente y estándar en todos los equipos y proyectos.
Aquí hay un ejemplo de una migración de muestra que puede ayudarte a ver cómo Sensei hace que sea fácil migrar tus pruebas unitarias para usar AssertJ.
Por qué AssertJ es un gran marco para escribir pruebas unitarias
En lugar de escribir una prueba como esta aserción de JUnit:
puedes escribir esto con AssertJ:
Esto significa que puedes leer la aserción de izquierda a derecha como una frase en inglés, y queda claro cuál es la expectativa (en este caso, el tamaño 3). ¿Cuántas veces has escrito una aserción al revés, así?
Estos son sólo ejemplos sencillos. Cuanto más complejas sean tus comprobaciones y aserciones, más te ayudará AssertJ a hacer tus pruebas simples y legibles. Funciona muy bien con el autocompletado de tu IDE. Tan pronto como escribas:
aparecerá con todas las cosas que puedes comprobar, según el tipo de miResultado. Si es una colección, puedes comprobar su contenido, su tamaño, si contiene ciertos valores o tipos, etc.
AssertJ tiene soporte para primitivas y sus tipos de caja, tipos atómicos, colecciones, arrays, mapas, fechas, java.time, futuros, archivos/rutas, flujos de entrada, lanzables y URLs. Y si tienes un Matcher personalizado favorito para Hamcrest, puedes utilizarlo con AssertJ a través de HamcrestCondition.
Las pruebas unitarias legibles facilitan a los desarrolladores la lectura del código en inglés normal y, por lo tanto, facilitan la detección de errores, así como el aumento de la cobertura, lo que convierte a AssertJ en un marco indispensable para las buenas pruebas unitarias de Java.
Recetas para trasladar las pruebas unitarias heredadas a AssertJ
Hemos escrito un libro de cocina para ayudarte a escribir código consistente con AssertJ. Puede ayudarte a migrar tus aserciones a AssertJ desde cualquiera de estos frameworks: JUnit 3, JUnit 4, JUnit 5 y FEST-Assert.
Este libro de cocina puede configurarse en Sensei para su uso inmediato y puede encontrar las instrucciones de instalación para Sensei aquí.
Escriba mejores pruebas unitarias a medida que codifica: mejore la calidad de JUnit progresivamente
El libro de cocina Sensei para AssertJ no sólo te ayuda a migrar desde otros frameworks. Tiene algunas recetas que pueden ayudarte a mejorar tu escritura de pruebas, romper viejos hábitos y escribir pruebas AssertJ más idiomáticas.
Por ejemplo, supongamos que ha escrito una prueba con el siguiente aspecto:
Tal vez incluso lo haya migrado utilizando una de las recetas de migración anteriores, a partir de esta aserción de estilo JUnit:
El libro de cocina Sensei para AssertJ tiene una receta que también puede detectar este viejo estilo de aserción, y ofrecer convertirlo en esto:
Otra receta puede convertir lo siguiente de:
a esto:
Una migración única y prácticas de codificación uniformes en todos los equipos, con Sensei
Podemos ver en nuestros ejemplos anteriores, que la migración manual de las pruebas unitarias para usar AssertJ puede implicar mucho esfuerzo y tiempo que es mejor invertir en escribir mejores pruebas. Utilizando Sensei, puedes migrar fácilmente tus pruebas unitarias a AssertJ con confianza. Puedes realizar una migración de una sola vez, o migrar pruebas individuales a AssertJ a medida que las encuentres. Sensei proporciona este tipo de flexibilidad que hace que las migraciones de código sean menos dolorosas.
La migración de pruebas unitarias es sólo un ejemplo de las muchas maneras en que Sensei puede utilizarse para escribir código coherente en todos tus proyectos. Siempre puedes estar atento a los anti-patrones o a ciertas transformaciones manuales de código que encuentras con frecuencia en los pull requests o mientras codificas tú mismo. Si tienes un conjunto de directrices de codificación que los desarrolladores no suelen tener en cuenta, puedes convertir las directrices en recetas, permitiendo a los desarrolladores aplicar transformaciones de código aprobadas con confianza.
Si tienes alguna pregunta, nos encantaría que nos la hicieras llegar. Únase a nosotros en Slack en: sensei-scw.slack.com
Índice
Sean es un ingeniero de software senior en Secure Code Warrior. Cuenta con más de una década de experiencia en desarrollo, centrada en ayudar a los desarrolladores a producir mejor software, y ha contribuido a varios proyectos de código abierto.
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónDescargarRecursos para empezar
Evaluación comparativa de las competencias en materia de seguridad: optimización del diseño seguro en la empresa
El movimiento Secure-by-Design es el futuro del desarrollo de software seguro. Conozca los elementos clave que las empresas deben tener en cuenta cuando piensan en una iniciativa Secure-by-Design.
DigitalOcean reduce su deuda de seguridad con Secure Code Warrior
El uso por parte de DigitalOcean de la formación Secure Code Warrior ha reducido significativamente la deuda de seguridad, permitiendo a los equipos centrarse más en la innovación y la productividad. La mejora de la seguridad ha reforzado la calidad de sus productos y su ventaja competitiva. De cara al futuro, SCW Trust Score les ayudará a seguir mejorando las prácticas de seguridad y a continuar impulsando la innovación.
Recursos para empezar
La puntuación de confianza revela el valor de las iniciativas de mejora de la seguridad mediante el diseño
Nuestra investigación ha demostrado que la formación en código seguro funciona. Trust Score, que utiliza un algoritmo basado en más de 20 millones de puntos de datos de aprendizaje procedentes del trabajo de más de 250 000 alumnos en más de 600 organizaciones, revela su eficacia a la hora de reducir las vulnerabilidades y cómo hacer que la iniciativa sea aún más eficaz.
Seguridad reactiva frente a seguridad preventiva: Prevenir es mejor que curar
La idea de introducir la seguridad preventiva en el código y los sistemas heredados al mismo tiempo que en las aplicaciones más recientes puede parecer desalentadora, pero un planteamiento basado en el diseño seguro, aplicado mediante la mejora de las competencias de los desarrolladores, puede aplicar las mejores prácticas de seguridad a esos sistemas. Es la mejor oportunidad que tienen muchas organizaciones de mejorar su seguridad.
Ventajas de la evaluación comparativa de las competencias de seguridad de los desarrolladores
La creciente atención que se presta al código seguro y a los principios del diseño seguro exige que los desarrolladores reciban formación en ciberseguridad desde el principio del proceso de desarrollo de software, con herramientas como Secure Code Warrior's Trust Score, que ayudan a medir y mejorar sus progresos.
Impulsando iniciativas de seguridad por diseño para empresas con éxito significativo
Nuestro último documento de investigación, Benchmarking Security Skills: Streamlining Secure-by-Design in the Enterprise, es el resultado de un análisis profundo de iniciativas reales de Secure-by-Design a nivel empresarial y de la derivación de enfoques de mejores prácticas basados en hallazgos basados en datos.