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