Quiero intentar implementar el Juego Tetris usando TDD.Pruebas de aceptación para Tetris cuando se usa Desarrollo controlado por prueba
Por lo que he entendido al leer Growing Object-Oriented Software, Guided by Tests, debería comenzar por definir cuáles serían mis pruebas de aceptación. Si estoy en lo cierto, las pruebas de aceptación cuando se hace TDD se definen como casos de uso.
Es de gran importancia definir una buena primera prueba de aceptación que funcione como "esqueleto" de la aplicación, por lo que debería ser algo simple.
que he elegido los siguientes 2 Pruebas de Aceptación como mi primer implementar:
- se inicia el juego y el jugador lo cierra.
- Comienza el juego y el jugador no hace nada. Él eventualmente pierde.
¿Son estas 2 pruebas de aceptación buenas pruebas de inicio? ¿Cuáles serían las próximas pruebas de aceptación? Podría pensar en algo así como
- El juego comienza y solo caen las piezas cuadradas. El jugador los coloca a todos de manera tal que las líneas siempre "explotan", haciendo que el Juego después de 100 pasos del juego aún no haya terminado.
pero siento que esto es un poco incómodo, ya que en un juego real de Tetris siempre tendrías diferentes piezas cayendo, y de eso se trata la Prueba de Aceptación.
Además, me siento un poco tentado de solo intentar implementar todo de una sola vez al hacer (2), que creo que no es el mismo cuando se implementa la segunda Prueba de aceptación. Supongo que la idea sería implementar el juego solo después de como 6-7 de ellos, no en el segundo. ¿Estoy en lo cierto?
Gracias
No tengo claro de dónde proviene el número 48. Además, para el segundo escenario, ¿debería la frase dada ser "Dado un campo completo de 10x2" en su lugar? – SCFrench
Miré la página de Wikipedia para Tetris para obtener el lenguaje comercial. De ahí es de donde vinieron los 48. "un campo completo de 10x2" podría ser una buena opción, pero no muy realista, he jugado un poco de Tetris en mi tiempo y NUNCA he visto un campo completo. –
Tengo algunos problemas para entender cómo usar TDD, que dice que para cada prueba deberíamos tener la cantidad mínima de código posible para hacer funcionar algo, en caso de que implementemos los escenarios que nos proporcionó. Quiero decir, podría implementar ya el juego completo de tetris, pero es difícil para mí concebir cómo implementar exactamente lo que se necesita sin tener que ponerlo todo allí. –