Я хочу попробовать реализовать игру «Тетрис» с использованием TDD.
Из того, что я понял, прочитав Растущее объектно-ориентированное программное обеспечение, руководствуясь тестами , я должен начать с определения того, какими будут мои приемочные тесты. Если я прав, приемочные тесты при выполнении TDD определяются так же, как и варианты использования.
Очень важно определить хороший первый приемочный тест, который будет работать как «скелет» приложения, поэтому он должен быть простым.
Я выбрал следующие 2 приемочных теста как первый для реализации:
- Игра начинается, и Игрок закрывает ее.
- Игра начинается, и игрок ничего не делает. В конце концов он проигрывает.
Являются ли эти 2 приемочных испытания хорошими начальными испытаниями? Что было бы хорошо на следующих приемочных испытаниях? Я мог бы придумать что-то вроде
- Игра начинается, и выпадают только квадратные фигуры. Игрок помещает их все таким образом, чтобы линии всегда «взрывались», и игра после 100 игровых шагов все еще не заканчивалась.
но я чувствую, что это немного неловко, так как в реальной игре тетрис у вас всегда будут падать разные фигуры, и именно об этом должно быть приемочное тестирование.
Кроме того, я испытываю соблазн просто попытаться реализовать все за один раз, выполняя (2), что, я думаю, вовсе не притворяется при реализации второго Приемочного теста. Думаю, идея заключалась бы в том, чтобы игра была реализована только после 6-7 из них, а не на втором. Я прав?
Спасибо