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.
80% Royalties. Earn $16 on a $20 book.
We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
In fact, authors have earned$12,307,240writing, publishing and selling on Leanpub.
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) y EPUB (para teléfonos, tabletas, y 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
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.
Personal Finance
Jason AndersonThis textbook provides an in-depth analysis on personal finance that is both practical and straightforward in its approach. It has been written in such a way that the readers can gain knowledge without getting overwhelmed by the technical terms. Suitable for both beginners and advanced learners.
Getting to Know IntelliJ IDEA
Trisha Gee and Helen ScottIf we treat our IDE as a text editor, we are doing ourselves a disservice. Using a combination of tutorials and a questions-and-answers approach, Getting to Know IntelliJ IDEA will help you find ways to use IntelliJ IDEA that enable you to work comfortably and productively as a professional developer.
R Programming for Data Science
Roger D. PengThis book brings the fundamentals of R programming to you, using the same material developed as part of the industry-leading Johns Hopkins Data Science Specialization. The skills taught in this book will lay the foundation for you to begin your journey learning data science. Printed copies of this book are available through Lulu.
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:
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.
Stats One
William FooteMachine Learning Q and AI
Sebastian Raschka, PhDHave you recently completed a machine learning or deep learning course and wondered what to learn next? With 30 questions and answers on key concepts in machine learning and AI, this book provides bite-sized bits of knowledge for your journey to becoming a machine learning expert.
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.
Gradual Modularization for Ruby and Rails
Stephan HagemannGet yourself a new tool to manage your Rails application and your growing engineering organization! Prevent the ball-of-mud (and fix it!). Go for microservices or SOA if it makes sense not just because you don't have any other tool. Do all this through a low-overhead tool: packages. Enable better conversations to make practical changes today.
Top Bundles
- #1
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... - #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
1500 QUIZ COMMENTATI (3 libri)
3 Books
Tre libri dei QUIZ MMG Commentati al prezzo di DUE! I QUIZ dei concorsi ufficiali di Medicina Generale relativi agli anni: 2000-2001-2003-2012-2013-2014-2015-2016-2017-2018-2019-2020-2021 +100 inediti Raccolti in unico bundle per aiutarvi nello studio e nella preparazione al concorso. All'interno di ogni libro i quiz sono stati suddivisi per... - #4
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... - #5
Practical FP in Scala + Functional event-driven architecture
2 Books
Practical FP in Scala (A hands-on approach) & Functional event-driven architecture, aka FEDA, (Powered by Scala 3), together as a bundle! The content of PFP in Scala is a requirement to understand FEDA so why not take advantage of this bundle!? - #7
Linux Administration Complet
4 Books
Ce lot comprend les quatre volumes du Guide Linux Administration :Linux Administration, Volume 1, Administration fondamentale : Guide pratique de préparation aux examens de certification LPIC 1, Linux Essentials, RHCSA et LFCS. Administration fondamentale. Introduction à Linux. Le Shell. Traitement du texte. Arborescence de fichiers. Sécurité... - #9
Development and Deployment of Multiplayer Online Games, Part ARCH. Architecture (Vol. I-III)
3 Books
What's the Big Idea? The idea behind this book is to summarize the body of knowledge that already exists on multiplayer games but is not available in one single place.And quite a fewof the issues discussed within this series (planned as three nine volumes ~300 pages each), while known in the industry, have not been published at all (except for... - #10
Modern C++ Collection
3 Books
Get All about Modern C++C++ Standard Library, including C++20Concurrency with Modern C++, including C++20C++20Each book has about 200 complete code examples. Updates are included. When I update one of the books, you immediately get the updated bundle. You can expect significant updates to each new C++ standard (C++23, C++26, .. ) and also...