Aprende Test Driven Development
Aprende Test Driven Development
Empieza con los ejercicios más sencillos hasta ser capaz de incorporar TDD en proyectos profesionales.
Sobre este libro
This is a book aimed to help programmers of all levels and languages to start learning Test Driven Development step by step
Tabla de contenido
-
Prólogo
-
- Cómo usar este libro
- Disclaimer
-
-
Conceptos básicos de TDD
-
1 ¿Qué es TDD y por qué debería importarme?
- La metodología Test Driven Development
- Qué no es Test Driven Development
- Beneficios
- Referencias
-
2 Conceptos básicos
- Test
- Tipos de tests
- Test Case
- Test Suite
- Código de producción
- Unidad de software
- Subject under test
- Refactor
-
3 Coding-dojo y katas
- Kata
- Coding-dojo
- Consejos para realizar las katas individualmente
- Cómo introducir TDD en equipos de desarrollo
- Repositorios de katas
- Referencias
-
1 ¿Qué es TDD y por qué debería importarme?
-
TDD clásica
-
4 Las leyes de TDD
- Las leyes en detalle
- El segundo test y las tres leyes
- Violaciones de las tres leyes y sus consecuencias
- Qué significa que un test pase nada más escribirlo
- El ciclo red-green-refactor
- Referencias
-
5 Fizz Buzz
- Entendiendo las leyes y ciclos de TDD
- Historia
- Enunciado
- Orientaciones para resolverla
- Enlaces de interés sobre la kata FizzBuzz
-
6 Resolviendo la kata Fizz Buzz
- Enunciado de la kata
- Lenguaje y enfoque
- Definir la clase
-
Definir el método
generate
-
Definir un comportamiento para
generate
- Generar una lista de números
- Seguimos generando números
- El test que no falla
- Aprendiendo a decir “Fizz”
- Decir “Fizz” cuando toca
- Aprendiendo a decir “Buzz”
- Decir “Buzz” cuando toca
- Aprender a decir “FizzBuzz”
- Decir “FizzBuzz” cuando toca
- Finalizando
- Qué hemos aprendido con esta kata
-
7 Elección de los ejemplos y criterio de finalización
- Checklist driven testing
- Selección de ejemplos
- Uso de varios ejemplos para generalizar un algoritmo
- En búsqueda de la abstracción incorrecta
- La abstracción correcta
-
8 Evolución del comportamiento mediante tests
- Construir la interfaz pública de una clase dirigida por tests
- Dirigir el desarrollo de un comportamiento con ejemplos
- Referencias
-
9 Prime Factors
- Desarrollando algoritmos
- Historia
- Enunciado
- Orientaciones para resolverla
- Enlaces de interés sobre la kata Prime Factors
-
10 Resolviendo la kata Prime Factors
- Enunciado de la kata
- Lenguaje y enfoque
- Definir la función
- Definir la signatura de la función
- Obteniendo más información sobre el problema
- Introduciendo un test que no falla
- Cuestionando nuestro algoritmo
- Descubriendo los múltiplos de 2
- Introduciendo más factores
- Nuevos divisores
- El camino más corto no siempre es el más rápido
- Introduciendo nuevos factores, segundo intento
- Más de dos factores
- ¿Tenemos criterios para elegir buenos ejemplos?
- Qué hemos aprendido con esta kata
-
11 La elección del primer test
- A la búsqueda del primer test más sencillo que pueda fallar
- La felicidad de los paths
-
12 NIF
- Comienza por los sad paths y aplaza las soluciones
- Historia
- Enunciado
- Orientaciones para resolverla
- Enlaces de interés sobre la kata
-
13 Resolviendo la Kata NIF
- Enunciado de la kata
- Lenguaje y enfoque
- Creando la función constructora
- Implementar la primera validación
- Un test para dominarlos a todos
- Completar la validación de la longitud y empezar a examinar la estructura
-
Unificar la validación por longitud del
string
- Avanzando en la estructura
- Invertir la condicional
- El final de la estructura
- Compactando el algoritmo
- Terminando la validación estructural
- Compactando la validación
- Seamos optimistas
- Cambiando la interfaz pública
- Ahora sí
- Avanzando el algoritmo
- Más refactor
- Validando más letras de control
- Un refactor para más simplicidad
- Dar soporte a NIE
- Qué hemos aprendido con esta kata
- Referencias
-
14 La fase de refactor
- La función del refactor en TDD
- Que refactors ejecutar
- Límites del refactor
- Cuando es el momento de hacer refactor
-
15 Bowling game
- La fase de refactor
- Historia
- Enunciado
- Orientaciones para resolverla
- Enlaces de interés sobre la kata Bowling Game
-
16 Resolviendo la kata Bowling Game
- Enunciado de la kata
- Lenguaje y enfoque
- Iniciando el juego
- Lancemos la bola
- Hora de refactorizar
- Contando los puntos
- El peor lanzador del mundo
- Organizando el código
- Enseñando a contar a nuestro juego
- Un paso atrás para llegar más lejos
- Recuperando un test anulado
- Poniéndonos más cómodas
- Cómo manejar un spare
- Introduciendo el concepto de frame
- Seguimos manejando el spare
- Eliminando números mágicos y otros refactors
- Strike!
- Reorganizando el conocimiento del juego
- La mejor jugadora del mundo
- Qué hemos aprendido con esta kata
-
17 Greeting
- Una kata funcional para dominarlas todas
- Historia
- Enunciado
- Orientaciones para resolverla
- Enlaces de interés sobre la kata Greetings
-
18 Resolviendo la kata Greetings
- Enunciado de la kata
- Lenguaje y enfoque
- Saludo básico
- Saludo genérico
- Usar el parámetro
- Un saludo genérico
- Responder a gritos
- Poder saludar a dos personas
- Preparándose para varios nombres
- Un refactor antes de seguir
- Reintroduciendo un test
- Manejar un número indeterminado de nombres
- Gritar a los gritones, pero sólo a ellos
- Separar nombres que contienen comas
- Escapar comas
- Qué hemos aprendido con esta kata
-
4 Las leyes de TDD
-
Outside-in TDD
-
19 Enfoques en TDD
- TDD Clásico o Detroit School
- Outside-in, London School o mockista
- Behavior Driven Development
- Entonces, ¿qué enfoque seguir? Y ¿Cómo aprender TDD a la luz de estos enfoques?
- Referencias
-
20 Proyecto Todo-List
- Diseño
-
21 Outside-in mockista
- Desarrollo
- Diseñando el test de aceptación
- Primer test unitario
- De vuelta en el ciclo de aceptación
- Nueva visita al test de aceptación
- Finalizando la primera historia de usuario
- Últimos pasos
- Qué hemos aprendido con esta kata
-
22 Outside-in TDD clásico
- Planteando el problema
- Extracción del caso de uso
- Implementando un repositorio
- Obtener la lista de las tareas
- Marcar una tarea completada
- Qué hemos aprendido con esta kata
-
19 Enfoques en TDD
-
TDD en la vida real
-
23 Lista de tareas, outside-in TDD por historias de usuario
- Añadir tareas a una lista
- Diseñando en rojo
- Volviendo al test de aceptación
- Nuevo ciclo
- Ver las tareas de la lista
- Marcar tareas completadas
- Siguientes pasos
-
24 Resolviendo bugs con TDD
- Defectos en To-do list
- Payload inválida
- Valores de negocio no válidos
- Garantizando reglas de dominio
- Tareas no encontradas
- Resolviendo defectos
-
25 Introducción de nuevas características
- Nueva historia de usuario
- Completar la historia
-
23 Lista de tareas, outside-in TDD por historias de usuario
-
Epílogo
-
26 TDD y calidad de vida (la tuya)
- Conocimiento en el mundo, conocimiento en la cabeza
- La capacidad de nuestra memoria de trabajo
- Un día en la vida
- Un consejo final
-
26 TDD y calidad de vida (la tuya)
- Notas
Leanpub incondicional, sin riesgo, 100% de felicidad garantizada
Durante los primeros 60 días de compra, puedes obtener un reembolso del 100% de cualquier compra Leanpub, en dos clics. Procesamos las restituciones manualmente, así que puede tomarse unos días en aparecer. Véase términos completos.
Que estés bien. Haz el bien.
Authors have earned$11,721,492writing, publishing and selling on Leanpub, earning 80% royalties while saving up to 25 million pounds of CO2 and up to 46,000 trees.
Learn more about writing on Leanpub
Actualizaciones gratis. Libre de DRM.
¡Si compras un libro Leanpub obtienes actualizaciones gratis siempre y cuando el autor actualice el libro! Varios autores usan Leanpub para publicar sus libros en progreso mientras los escriben. Todos los lectores obtienen actualizaciones gratis, independientemente de cuándo compraron el libro o cuánto pagaron (incluyendo si fue gratis).
La mayoría de los libros Leanpub se encuentran disponibles en PDF (para computadores), EPUB (para teléfonos y tabletas) y MOBI (para Kindle). Los formatos que un libro incluye se muestran en la esquina superior derecha de esta página.
Finalmente, los libros Leanpub no tienen ninguna de las cosas sin sentido sobre protección de copia DRM, así que puedes leerlos fácilmente en cualquier dispositivo que se soporta.
Aprende más sobre los formatos de Leanpub y dónde puedes leerlos
Top Books
Recipes for Decoupling
Matthias NobackWrite software that survives
CQRS by Example
Carlos Buenosvinos, Christian Soronellas, and Keyvan Akbary- Leverage your Software Architecture skills by learning everything about CQRS in detail with lots of examples
- Develop faster applications by applying CQRS and fostering Read Models and Projections
- Learn how to apply CQRS into a brownfield project from a pragmatic approach
OpenIntro Statistics
David Diez, Christopher Barr, Mine Cetinkaya-Rundel, and OpenIntroA complete foundation for Statistics, also serving as a foundation for Data Science.
Leanpub revenue supports OpenIntro (US-based nonprofit) so we can provide free desk copies to teachers interested in using OpenIntro Statistics in the classroom and expand the project to support free textbooks in other subjects.
More resources: openintro.org.
Maîtriser Apache JMeter
Philippe Mouawad, Bruno Demion (Milamber), and Antonio Gomes RodriguesToute la puissance d'Apache JMeter expliquée par ses commiteurs et utilisateurs experts. De l'intégration continue en passant par le Cloud, vous découvrirez comment intégrer JMeter à vos processus "Agile" et Devops.
If you're looking for the newer english version of this book, go to Master JMeter : From load testing to DevOps
C++20 - The Complete Guide
Nicolai M. JosuttisAll new language and library features of C++20 (for those who know previous C++ versions).
The book presents all new language and library features of C++20. Learn how this impacts day-to-day programming, to benefit in practice, to combine new features, and to avoid all new traps.
Buy early, pay less, free updates.
Other books:
Jetpack Compose internals
Jorge CastilloJetpack Compose is the future of Android UI. Master how it works internally and become a more efficient developer with it. You'll also find it valuable if you are not an Android dev. This book provides all the details to understand how the Compose compiler & runtime work, and how to create a client library using them.
Ansible for DevOps
Jeff GeerlingAnsible is a simple, but powerful, server and configuration management tool. Learn to use Ansible effectively, whether you manage one server—or thousands.
Mastering STM32 - Second Edition
Carmine NovielloWith more than 1200 microcontrollers, STM32 is probably the most complete ARM Cortex-M platform on the market. This book aims to be the most complete guide around introducing the reader to this exciting MCU portfolio from ST Microelectronics and its official CubeHAL and STM32CubeIDE development environment.
Rector - The Power of Automated Refactoring
Matthias Noback and Tomas VotrubaLearn how to automatically and continuously upgrade and improve your PHP code base
The Hundred-Page Machine Learning Book
Andriy BurkovEverything you really need to know in Machine Learning in a hundred pages.
Top Bundles
- #2
CCIE Service Provider Ultimate Study Bundle
2 Books
Piotr Jablonski, Lukasz Bromirski, and Nick Russo have joined forces to deliver the only CCIE Service Provider training resource you'll ever need. This bundle contains a detailed and challenging collection of workbook labs, plus an extensively detailed technical reference guide. All of us have earned the CCIE Service Provider certification... - #3
Pattern-Oriented Memory Forensics and Malware Detection
2 Books
This training bundle for security engineers and researchers, malware and memory forensics analysts includes two accelerated training courses for Windows memory dump analysis using WinDbg. It is also useful for technical support and escalation engineers who analyze memory dumps from complex software environments and need to check for possible... - #4
Software Architecture
2 Books
"Software Architecture for Developers" is a practical and pragmatic guide to modern, lightweight software architecture, specifically aimed at developers. You'll learn:The essence of software architecture.Why the software architecture role should include coding, coaching and collaboration.The things that you really need to think about before... - #5
Static Analysis and Automated Refactoring
2 Books
As PHP developers we are living in the "Age of Static Analysis". We can use a tool like PHPStan to learn about potential bugs before we ship our code to production, and we can enforce our team's programming standards using custom PHPStan rules. Recipes for Decoupling by Matthias Noback teaches you in great detail how to do this, while also... - #9
All the Books of The Medical Futurist
6 Books
We put together the most popular books from The Medical Futurist to provide a clear picture about the major trends shaping the future of medicine and healthcare. Digital health technologies, artificial intelligence, the future of 20 medical specialties, big pharma, data privacy, digital health investments and how technology giants such as Amazon...