Если у меня есть испытуемый с таймером, который заставляет выполнять какое-то действие через определенный интервал времени, как лучше это проверить?
Один метод - обернуть таймер в интерфейс и внедрить его как зависимость.
Однако я бы хотел избежать создания еще одной абстракции. Кажется, я могу избежать этого, вставив интервал обновления, а не таймер. Затем в моем тесте (предполагая стиль тестирования AAA) я помещаю Thread.Sleep
после Act и перед Assert , используя очень маленькое значение времени, поэтому тест не займет много времени.
Это плохая идея? Я знаю, что это, вероятно, не полностью соответствует принципам TDD, но похоже, что должна быть линия, где вы перестанете окружать все контрактом и вводить его.