Testing y TDD para PHP

Testing y TDD para PHP

Fran Iglesias
Buy on Leanpub

Table of Contents

Testing y TDD para PHP

  • 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
Testing y TDD para PHP/overview

Testing y TDD para PHP

course_overview

Este es un manual que recoge ideas y experiencias sobre testing y test driven development con ejemplos en PHP.

count_chapters
begin_reading
download
p_implied_book_part_name

Testing y TDD para PHP22 chapters

Begin ›
  1. Introducción: Del ojímetro al tdd

  2. Testing desde cero

  3. Testing en contexto

  4. Psicología del testing

  5. Primer test

  6. TDD de un validador de NIF

  7. Desarrollar un algoritmo paso a paso con TDD: Luhn Test kata

  8. Clean testing

  9. Test doubles (1)

  10. Test doubles (2) Principios de diseño

  11. Resolver problemas con baby-steps

  12. Usar el code coverage para mejorar los tests

  13. Testeando lo impredecible

  14. TDD en PHP. Un ejemplo con colecciones (1)

  15. TDD en PHP. Un ejemplo con colecciones (2)

  16. TDD en PHP. Un ejemplo con colecciones (3)

  17. TDD en PHP. Un ejemplo con colecciones (4)

  18. TDD en PHP. Un ejemplo con colecciones (5)

  19. Apéndices

  20. Apéndice 1: PhpUnit

  21. Apéndice 2: PhpSpec

  22. Notas