Katas intermedias programación orientada a objetos-OOP

Una vez que hayas empezado a utilizar TDD y profundizado en conceptos básicos como condicionales, bucles y estructuras simples, es hora de añadir complejidad a tu práctica. Refuerza tus conocimientos de programación orientada a objetos (OOP), así como otros conceptos de testing, como los tests-doubles y distintos estilos de TDD, y cómo enfrentar problemas con estos enfoques.

Katas

Text processing: En esta se enseña el concepto de DTO donde lo que no queremos es acoplarnos a la salida que tenemos por pantalla sino a la información que realmente nos interesa También se busca que se trabaje una tarea de manera iterativa e incremental. NO te centres en la representación gráfica.

Bags: Kata para trabajar estructuras de datos, OOP y polimorfismo

PrintDate: Kata para trabajar los colaboradores, los Dobles de test y la teoría de que tipo de doble sería un [Command] y que tipo de doble sería un [Query].

Iteración 1: Utilización de dobles de test y comprender el Don’t Mock What You Don’t Own” - Opcional, usa CRC cards
Iteración 2: Crear tus propios dobles de test

Tic tac toe: Kata diseñada para aprender 2 cosas importantes:
Iteración 1: TDD inside-out ver como evolucionan los test y trabajar como se quiere hacer si separando [Commands] [Queries]  o el juego podría devolver su estado
Iteración 2: TDD outside-in sin acoplarse a la representación gráfica, esta parte se trabajará en la Bank kata (aunque si alguien termina pronto puede intentar ver como poder implementarlo)
Iteración 3Aplicación de object calisthenic y utiliza mutant testing para que te ayude ha crear test más fuerte.

Smart Fridge:
Iteración 1: TDD inside-out (introducción a colaboradores)
Iteración 2: TDD outside-in (hacer solamente el test de contrato con dobles de test)
Iteración 3Aplicación de object calisthenic

Guess the random number: Kata para aprender 3 cosas:
Iteración 1: TDD inside-out (introducción a colaboradores)
Iteración 2: TDD outside-in (hacer solamente el test de contrato con dobles de test)
Iteración 3: TDD outside-in haciendo el contrato y con este contrato crear los colaboradores haciendo TDD, Esto se podría hacer con un double loop haciendo ATDD

ATM machine: Kata iterativa incremental que tiene estado y que puede ser afrontada desde inside-out o outside-in
Iteración 1: Que eligan el estilo quecreen que deben trabajar más.
Iteración 2: Que lo hagan del estilo con el que más cómodo se sienten.
Iteración 3Aplicación de object calisthenic

Shopping cart: Kata iterativa incremental que tiene estado y que puede ser afrontada desde inside-out o outside-in
Iteración 1: Que elijan el estilo que creen que deben trabajar más. - Opcional, usa CRC cards
Iteración 2: Que lo hagan del estilo con el que más cómodo se sienten.
Iteración 3Aplicación de object calisthenic

Bank: Kata diseñada para trabajarla con outside-in y utilizando ATDD
Iteración 1: TDD outside-in
Iteración 2BDD con Gherking o Cucumber

Salary slip kata: Kata diseñada para trabajar con OOP y con BDD
Iteración 1: Trabajar el outside-in y utilizando ATDD
Iteración 2: Trabajar el inside-out
Iteración 2: Trabajar el BDD. Centrate en aprender que es BDD, como sería una feature correcta, haz el setup para el lenguaje que necesites e invierte el tiempo necesario

Conway's Game of Life:
Iteración 1: TDD inside-out (introducción a colaboradores)
Iteración 2: TDD outside-in (hacer solamente el test de contrato con dobles de test)

Consejos:

  • Aprovecha para aprender como pivotar desde dentro hacia a fuera y desde a fuera hacia dentro, dependiendo de lo que necesites
  • Dependiendo de lo que intentes implementar piensa en que capa de la piramide de test deberías empezar. </aside>

Aprendizajes:

  • Piramide de test
  • Trabajo con colaboradores
  • Principios de diseño de software
  • Estrategias de testing
      Dobles de test
      ¿Qué son?
      ¿Qué tipos existen?
      ¿Cuándo usarlos? 
      ¿Cómo crear tus propios dobles de test?
       Don’t Mock What You Don’t Own

 

New call-to-action