UITests + ApprovalTests en Xamarin Forms

¡Hola!
El otro día pude ver (a grandes rasgos) el funcionamiento general de los test de UI en Xamarin Forms. En cuanto vi la sentencia app.Screenshot(“Welcome screen”) automáticamente me acordé de ApprovalTests y cómo se generaban los test de aprobación para aplicaciones Windows Forms o WPF que, en esencia, se basa en hacer una captura de pantalla del formulario/ventana/control correspondiente y comprobarlo con la captura que previamente hemos aprobado. Si no sabes cómo funciona la librería ApprovalTest hace un tiempo escribí algunas entradas sobre ella (1, 2 y 3).
Continúa leyendo UITests + ApprovalTests en Xamarin Forms

AutoMocker. Desacoplando los tests de los constructores

¡Hola!
En las dos anteriores entradas (aquí y aquí), hemos conocido un poco la herramienta Autofixture y cómo nos ayuda principalmente a aislarnos lo máximo posible en la etapa Arrange de los test y facilitar así nuestras refactorizaciones de código. Hoy vamos a ver otra herramienta similar, pero mucho más sencilla (y menos potente), AutoMocker. Está disponible directamente desde NuGet. Continúa leyendo AutoMocker. Desacoplando los tests de los constructores

Autofixture. Customización de Fixtures

¡Hola!
El otro día estuvimos viendo cómo podemos utilizar Autofixture para intentar mejorar la etapa de Arrange de nuestros tests y hacerlos más mantenibles; además, por si no fuese poco, también vimos cómo aumenta nuestra productividad ya que tenemos que escribir menos código, o más bien, menos código que no está directamente relacionado con el objetivo del test, por ejemplo, para probar x funcionalidad necesitamos una instancia de y, nos da igual su estado, simplemente la necesitamos, y ahí es donde Autofixture nos puede ayudar. Esto último no siempre es así, es muy posible que en ciertos test queramos crear instancias en un estado concreto ya sea porque es lo que estamos probando o porque está directamente relacionado, y para ello existen técnicas como factorías o builders (en el anterior post vimos algunas técnicas), pero Autofixture también nos permite personalizar cómo creamos los objetos. Continúa leyendo Autofixture. Customización de Fixtures

AutoFixture. Mejorando la mantenibilidad de nuestros tests

¡Hola!
Hoy vamos a dar un vistazo a una librería muy interesante para mejorar nuestros test, Autofixture. Esta librería nos va a permitir desacoplarnos de la etapa Arrange y poder refactorizar y añadir nuevas funcionalidades a nuestro código sin miedo a tener que tocar muchos test (a lo mejor para añadir un nuevo parámetro a un constructor), en resumen, mejorar la mantenibilidad de nuestros tests. Continúa leyendo AutoFixture. Mejorando la mantenibilidad de nuestros tests

Test de aprobación con ApprovalTests. Windows Forms, WPF, ASP y más

¡Hola!
En la anterior entrada dimos un repaso a algunos de los principales Reporters disponibles. Hoy vamos a echar un vistazo a qué cosas/tecnologías podemos testear con ApprovalTests, cómo se hace y si realmente merece la pena. Continúa leyendo Test de aprobación con ApprovalTests. Windows Forms, WPF, ASP y más

Test de aprobación con ApprovalTests. Reporters

¡Hola!
Si en la anterior entrada vimos los conceptos básicos de ApprovalTests, hoy vamos a echar un vistazo a los Reporters. Los Reporters son las herramientas que tenemos disponibles para tomar las decisiones cuando un test falla y nos sirven principalmente poder visualizar el resultado del test fallido, comparar los cambios que se han producido entre la versión correcta y la versión actual fallida, y decidir si los cambios fallidos en realidad son correctos. Continúa leyendo Test de aprobación con ApprovalTests. Reporters

Test de aprobación con ApprovalTests. Conceptos básicos

¡Hola!
El otro día haciendo la kata Gilded Rose (una de las más interesantes que he hecho), me encontré con una curiosa herramienta llamada ApprovalTests. Esta librería, que tiene ya unos cuantos años, nos ayuda a escribir test de aprobación. Este tipo de test los utilizaremos típicamente cuando nuestros Asserts sean muy costosos o queramos refactorizar código (como en la kata). Antes que nada, os recomiendo dejar de leer esta entrada y leer estas otras del blog Koalite que son mucho más interesantes (y con mejor criterio), y si no conoces el blog, ya puedes añadirlo a tus marcadores. Continúa leyendo Test de aprobación con ApprovalTests. Conceptos básicos

Migrando de MSTest a xUnit. Test parametrizados

¡Hola!
Llegamos al último post de la serie Migrando de MSTest a xUnit. En el primero vimos los cambios más básicos y cómo cambia el ciclo de vida de los test, en el segundo los principales atributos y esta vez toca ver los test parametrizados. Yo, personalmente, nunca había utilizado este tipo de test hasta que hace unos días, haciendo la kata Roman Numerals Kata los utilicé por primera vez.
Continúa leyendo Migrando de MSTest a xUnit. Test parametrizados

Migrando de MSTest a xUnit. Atributos

¡Hola!
Después de ver algunas cosas básicas y cómo cambia el ciclo de vida de los test, hoy vamos a echar un vistazo a los atributos básicos y cómo cambian de MSTest a xUnit. Antes de que se me olvide, Francisco (un crack del testing) me comentó que por lo visto ha salido ya hace unos meses una nueva versión de MSTest, MSTest V2 y yo sin saberlo, así que es posible que algunas cosas que haya comentado o vaya a comentar hayan cambiado con esta nueva versión :(, aunque es una buena noticia que MSTest siga evolucionando.
Continúa leyendo Migrando de MSTest a xUnit. Atributos

Migrando de MSTest a xUnit

¡Hola!
Pues como bien dice el título, vamos a empezar a ver una serie de entradas para intentar pasar de MSTest a xUnit, viendo qué cosas cambian y por dónde empezar.
La primera pregunta que nos deberíamos hacer es, ¿deberíamos cambiar a xUnit? Aquí la respuesta es (como en casi todo), depende. En un proyecto ya iniciado en el que tengamos todos nuestros test con MSTest y no tengamos necesidades imperiosas para cambiar, por ejemplo que necesitemos sí o sí alguna característica de xUnit imposible de hacer con MSTest (imposible.. seguro¿?), es muy probable no merezca la pena el cambio. En un proyecto nuevo la cosa cambia; parece que xUnit (o NUnit) tienen más aprobación que MSTest, cuando digo más aprobación me refiero a que es lo que se aconseja por parte de la comunidad. Y no es excusa que el equipo de desarrollo siempre haya trabajado con MSTest porque el cambio es bastante natural. En cualquier caso, si no tienes necesidades muy complejas, seguramente con MSTest vayas servido. Al final lo importante es hacer test, independientemente del framework que utilicemos, porque nos ayudan a desarrollar aplicaciones más robustas, más fácil de mantener y extender, nos proporcionan documentación, etc. Continúa leyendo Migrando de MSTest a xUnit