Я довольно новичок в TDD, но использую его достаточно долго, чтобы понять, как использовать макеты, заглушки, внедрение зависимостей, инверсию управления для решения «похожих» проблем ... но по какой-то причине я чувствую себя очень неловко из-за используя внедрение зависимостей и передавая IThread (или аналогичный).
Чтобы дать ему некоторый базовый контекст - я пытаюсь добавить модульные тесты в унаследованное приложение, и я не уверен, как выполнить модульное тестирование класса, конструктор которого порождает два потока.
Является ли единственным вариантом использования внедрения зависимостей?
Если так, как насчет функциональности, которую предоставляют потоки? В этом состоянии потоки запускаются в то время как циклы while (true) и никогда не выходят из цикла (если только приложение не завершается). Внутри циклов есть разумные куски кода, и именно этот код я действительно хочу протестировать.
Что еще хуже, я не хочу извлекать всю функциональность из циклов в публичные методы (я тестирую только публичные методы, так как мои тесты существуют в другом проекте), так как это будет действительно уменьшить удобство использования класса в другом месте кода.
Есть предложения?