Модульное тестирование в C # - Thread.Sleep (x) - Как смоделировать системные часы
Я должен проверить метод, который выполняет определенное количество работы после интервала.
while (running)
{
...
// Work
...
Thread.Sleep(Interval);
}
Интервал передается в качестве параметра классу, так что я могу просто передать 0 или 1, но меня интересовало, как смоделировать системные часы, если это не так.
В моем тесте я хотел бы иметь возможность просто установить время вперед с помощью TimeSpanинтервал и просыпаться нить.
Я никогда раньше не писал тестов для кода, который воздействует на исполняющий поток, и я уверен, что есть некоторые подводные камни, которых следует избегать - пожалуйста, не стесняйтесь уточнять, какой подход вы используете.
Спасибо!