Вам не нужно 5 классов для первого ответа.Все, что вам нужно, это пустой API или пользовательский интерфейс, и что-то, что всегда возвращает GuessResult.Success
.
Диспетчер времени будет использоваться только из сценария (и всегда установлен на 3 секунды).на данный момент).
Если это поведение недостаточно богато (ну, конечно, это не так!), то какой сценарий будет дальше?Можете ли вы вспомнить пример, в котором ваша игра должна возвращать что-то отличное от GameResult.Success
?
Начните с создания по одному сценарию за раз самым простым способом.Когда этого не достаточно, измените его.
Абсолютно хорошо иметь в виду классы вашего дизайна, но сделать его простым и рефакторингом, когда вы идете к этому дизайну.
Разбивая другие классы, вы будете делегировать части поведения системы этим классам.Некоторые вещи будут лучше выражаться в виде поведения классов, чем всей системы (например, правила расчета площади), поэтому напишите пример того, как класс ведет себя с точки зрения API / UI (TDD).Это «внешняя сторона» BDD.
Это поможет вам сохранить хорошую тестовую пирамиду (множество юнит-тестов, несколько сценариев).
Не забудьте поговорить скто-то о том, что ты делаешь, даже если это резиновая утка.