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