Score Keeper Kata

La kata Score Keeper es un ejercicio de programación para principiantes diseñado para ayudarte a practicar el Desarrollo Guiado por Pruebas (TDD).

Escenario

Tu tarea es desarrollar un software para un marcador de baloncesto. Los usuarios finales requieren una interfaz simple con seis botones:

  • Tres botones para el Equipo A para sumar 1, 2 o 3 puntos.
  • Tres botones para el Equipo B para sumar 1, 2 o 3 puntos.

El marcador debe mostrar el puntaje actual en un formato fijo: 000:000, donde el puntaje de cada equipo siempre se representa con tres dígitos.

Tu tarea

Puedes comenzar implementando una clase llamada ScoreKeeper con los siguientes métodos:

  • scoreTeamA1()
  • scoreTeamA2()
  • scoreTeamA3()
  • scoreTeamB1()
  • scoreTeamB2()
  • scoreTeamB3()
  • getScore()

Cada método scoreTeamXn() debe incrementar el puntaje del equipo correspondiente en n puntos. El método getScore() debe retornar el puntaje actual en el formato 000:000.

Restricciones

  • La visualización del marcador debe tener siempre una longitud de siete caracteres, manteniendo los ceros a la izquierda cuando sea necesario.
  • Enfócate en escribir código limpio y mantenible, con una cobertura de pruebas completa.
  • Adopta un enfoque TDD de fuera hacia dentro (outside-in): comienza escribiendo pruebas para la interfaz de ScoreKeeper antes de implementar la lógica interna.

Flujo de trabajo TDD sugerido

  1. Rojo: Escribe una prueba que falle para la funcionalidad inicial (por ejemplo, scoreTeamA1() debería aumentar el puntaje del Equipo A en 1).
  2. Verde: Implementa el código mínimo necesario para que la prueba pase.
  3. Refactoriza: Limpia el código asegurándote de que todas las pruebas sigan pasando.

Repite este ciclo para cada método y caso límite (edge case).

Objetivos de aprendizaje

  • Practicar el enfoque outside-in del TDD.
  • Comprender cómo diseñar una API simple que cumpla con los requisitos del usuario.
  • Mejorar habilidades en la escritura de pruebas unitarias claras y efectivas.
  • Experimentar la programación en pareja (pair programming) como forma de colaboración.

Enlaces

  • Encuentra la configuración básica aquí.
  • Encuentra nuestra solución aquí.

¡Es hora de jugar!

Siéntete libre de experimentar con esta pequeña interfaz basada en nuestra solución de la Kata.

Escribir comentario

* Estos campos son obligatorios

Comentarios

Sin comentarios