Go es un lenguaje moderno, minimalista, pero tremendamente versátil que te permitirá desarrollar todo tipo de aplicaciones. El testing es parte fundamental del lenguaje y aplicar TDD en tu desarrollo diario hará que tus aplicaciones sean más robustas ayudando a mejorar su diseño y mantenibilidad.
Este curso de TDD en Go está pensado para programadores que tengan nociones básicas del lenguaje Go y de programación orientada a objetos en general. Para sacarle el máximo provecho a esta formación, aparte de tener esos conocimientos indicados, también es recomendable tener una mínima experiencia previa en testing de aplicaciones a nivel unitario e integración.
El curso comienza con un bloque de introducción en la que comenzaremos a explicar qué es TDD, para qué sirve y sus fundamentos. Después pasaremos a hablar sobre el testing en Go, explicando cómo se realizan estos tests en este lenguaje de programación.
Después de esta introducción, encontrarás el bloque centrado en los diferentes tipos de datos, como son estructuras, métodos e interfaces, y cómo testearlos utilizando la metodología TDD. Seguidamente veremos otro apartado del curso con mucha relación con el anterior, en el que aprenderás a gestionar y manejar errores desarrollando software utilizando TDD.
También se profundizará en todo lo referente a la inyección de dependencias y mocking en Go, diferenciando tanto el mocking construido por nosotros mismos (sin framework) como el mocking realizado con Testify, una librería externa.
Después de esos bloques más centrados en la teoría, pasaremos a la parte más práctica del curso, en la sección dedicada a testear un servidor HTTP, utilizando todo lo que hemos visto previamente. Se realizará el desarrollo de un servidor HTTP, se expondrá una API y finalmente se testearán los componentes de esa API utilizando la metodología TDD.
En el apartado final del curso de TDD en Go, el profesor explicará una serie de consejos y buenas prácticas a tener en cuenta al implementar TDD en el desarrollo con GO, y unas conclusiones tras haber acabado el curso.