Testing y TDD para PHP
Testing y TDD para PHP
$4.99
Precio mínimo
$9.99
Precio sugerido
Testing y TDD para PHP

Este libro está 80% completo

Este libro ha sido actualizada por última vez el 2018-12-08.

Acerca de este libro

Este es un manual que recoge ideas y experiencias sobre testing y test driven development. Aunque la mayoría de los ejemplos de código están hechos en PHP, el contenido es aplicable a otros lenguajes. Se trata de una recopilación de artículos publicados en el blog de The Talking Bit y reflejan la evolución de mi experiencia y aprendizaje escribiendo tests y haciendo test driven development.

Sobre el autor

Fran Iglesias
Fran Iglesias

Soy un desarrollador backend que trabaja sobre todo con PHP, aunque no dejo de explorar y probar otros lenguajes. Me interesan mucho las buenas prácticas, especialmente el testing y el test/behavior driven development.

Table of Contents

  • Introducción: Del ojímetro al tdd
    • Entonces descubres los tests
    • Control de calidad
    • Tests funcionales
    • Anatomía de un test
    • Manejo de las dependencias
    • Cuándo toca hacer tests
    • Test Driven Development
    • Qué incluir en los tests y qué no
    • Y esto es casi todo
  • Testing desde cero
    • Qué es software testing
    • A mano o a máquina
    • Qué sometemos a test
    • Qué es hacer un test
    • Estructura básica de un test
    • La elección de los casos para testear
    • Frameworks para testing
    • Cuándo testear
  • Testing en contexto
    • Taxonomía de tests
    • La pirámide de tests funcionales
    • Utilidad de la pirámide de tests
    • Smells en la pirámide de los tests funcionales
  • Psicología del testing
    • ¿Por qué nos cuesta el testing?
    • El concepto de test y la necesidad de testear
    • Sentimos apego por nuestro código
    • La dificultad técnica del testing
    • La presión para no testear
    • Testear no es igual a confirmar que funciona
    • Responsabilidad y testeo
  • Primer test
  • TDD de un validador de NIF
    • Testeando lo que no es válido
    • Toca refactor
    • Nuevos casos no válidos
    • Dos por el precio de uno
    • Concluyendo
  • Desarrollar un algoritmo paso a paso con TDD: Luhn Test kata
    • Sobre la Luhn Test kata
    • Empecemos con un test
    • Empezando con el código de producción
    • Buscando un nuevo ejemplo
    • Los tests deben forzar implementaciones
    • Buscando un algoritmo más general
    • Añadiendo prestaciones
  • Clean testing
    • Naming de los test
    • Eliminar los números mágicos
    • Extrae métodos, también en tests
    • Esperar excepciones
    • Métodos assert
  • Test doubles (1)
    • El concepto de test double
    • Por qué y para qué de los tests doubles
    • Test doubles y dónde encontrarlos
    • Alternativas para generar test doubles
    • Terminando
  • Test doubles (2) Principios de diseño
    • Principios de diseño y doubles
    • Un ejemplo
    • En resumen
  • Resolver problemas con baby-steps
    • Un problema sencillo, pero con intríngulis
    • Un problema de TDD
    • El enfoque de tests antes que el código pero que no es TDD
    • El enfoque TDD
    • Conclusiones
  • Usar el code coverage para mejorar los tests
    • Code coverage y refactoring
    • Para finalizar
  • Testeando lo impredecible
    • Generando contraseñas para humanos
    • Determinismo y predictibilidad
    • A ver qué sale
    • Generando un password legible
    • Testeando el azar
    • Probamos nuestro generador de constraseñas
    • Queremos contraseñas más difíciles
    • Decorar es extender por composición
    • Veamos cómo usarlo
    • Cosas por hacer
    • Algunas referencias
  • TDD en PHP. Un ejemplo con colecciones (1)
    • ¿Qué tendría que tener una clase Collection?
    • Escribiendo el primer mínimo test que falle
    • Pongamos un poco de comportamiento aquí
    • Controlando qué ponemos en la colección
    • Refactorizar el test
    • Antes de terminar, hagamos unos arreglos
    • Y un extra
    • Fin del primer acto
  • TDD en PHP. Un ejemplo con colecciones (2)
    • Testing dirigido por Checklist
    • Filosofía de las colecciones
    • Implementar el método each
    • Recapitulando each
  • TDD en PHP. Un ejemplo con colecciones (3)
    • Pipeline en el método each
    • Una digresión: mutable, modificable o todo lo contrario
    • Antes de implementar el método map
    • Implementando map
    • Para finalizar (por ahora)
  • TDD en PHP. Un ejemplo con colecciones (4)
    • Estos artículos van de TDD más que de Collections
    • Filtrando una colección
    • Ahorrando algunos tests con return type y type hinting
    • ¿Algo que refactorizar?
    • Devolver un objeto
    • Fin del capítulo
  • TDD en PHP. Un ejemplo con colecciones (5)
    • Reduciendo colecciones
    • Métodos útiles para nuestras colecciones
    • Devolviendo el contenido de la colección
    • Métodos de utilidad
    • Refactor final
  • Apéndices
  • Apéndice 1: PhpUnit
    • Instalación
    • Configuración básica
  • Apéndice 2: PhpSpec
    • Instalación
    • Configuración inicial
    • Specification by example
    • Primera especificación
  • Notas

Leanpub incondicional, sin riesgo, 100% de felicidad garantizada

Durante los primeros 45 días de compra, puede obtener un reembolso del 100% de cualquier compra Leanpub, en dos clics. Nosotros procesamos las restituciones a la mano, así que hacen tomar unos días en aparecer. Vea términos completos.

Escribir y publicar en Leanpub

Los autores y editores usan Leanpub para publicar ebooks sorprendentes en curso y completados, como éste. ¡Usted puede utilizar Leanpub para escribir, publicar y vender su libro también! Leanpub es una potente plataforma para autores serios, que combina un flujo de trabajo de escritura y publicación simple y elegante con una tienda centrada en la venta de libros electrónicos en progreso. Leanpub es una máquina de escribir mágica para los autores: basta con escribir en texto plano, y para publicar su ebook, simplemente haga clic en un botón. Realmente es así de fácil.

Más información sobre cómo escribir en Leanpub