Примечание: проверьте свой тест - по обычным правилам, Paper превосходит Rock.
public Object getWinner(Player player1, Player player2) {
return player1;
}
На данный момент есть два разных направления, по которым вы можете идти.
Если вы не имейте представление о том, куда вы идете дальше, затем попытайтесь триангулировать.Это значит добавить новый тест, который заставит вас изменить реализацию getWinner.В идеале вы выбираете новый тест, который требует лишь небольшого изменения.Например, если вы просто переключаете игры, сделанные player1 и player2, то вы должны получить player2 в качестве победителя.
Итак, вы пишете этот тест, и он провалится.Затем внесите небольшое изменение в реализацию, чтобы пройти тест.Затем посмотрите, сможете ли вы очистить код.
Если вы делаете , у вас есть представление о том, куда вы собираетесь идти дальше, то перед тем, как начать беспокоиться о следующем тесте, вы можете подумать об удалениидублирование в вашей реализации.В этом случае тот факт, что игрок выигрывает, неявно связан с выбором, который сделал игрок.Поэтому сделайте этот факт явным в своем коде.
Таким образом, вы можете получить что-то похожее на это:
private Round roundOne = new Round();
public Object getWinner(Player player1, Player player2) {
return roundOne.play(player1, player2);
}
И эта реализация будет работать доВы начинаете разыгрывать игроков, которые меняют свой выбор с одного раунда на следующий.Поэтому вам нужно выяснить, как это выглядит, и написать несколько тестов, которые реализуют это поведение.Затем вы возвращаетесь к матчу и выясняете, как выглядит тест, когда игроки начинают варьировать свои стратегии.
JBrains предлагает лучшее в мире вступление в TDD , которое может помочь.Цена стоит попробовать.
Обновление от 20 августа 2018 года. Лекции внизу для Серии 1 и Серии 2 доступны в качестве предварительного просмотра, даже если кнопки не говорят "Предварительный просмотр "прямо сейчас.
Он внедряет свои тесты и решения на Java, но это не учебник по Java - иногда вам может понадобиться поискать другие ресурсы, чтобы уточнить, что он делает вкод.