Исходя из этого вопроса ... Я пытаюсь выполнить модульное тестирование следующего сценария:
У меня есть класс, который позволяет вызывать метод для выполнения какого-либо действия, а в случае неудачи подождать секунду и вызвать этот метод.
Скажем, я хотел вызвать метод DoSomething () ... но в случае возникновения исключения с помощью DoSomething () я хочу иметь возможность повторить вызов до 3 раз, но ждать 1 секунду между каждая попытка. Цель модульного теста, в данном случае, состоит в том, чтобы убедиться, что когда мы вызывали DoSomething () 3 раза с интервалом в 1 секунду между каждой повторной попыткой, общее время выполнения> 3 секунды.
К сожалению, единственный способ, которым я могу подумать, чтобы проверить это, это рассчитать время, используя секундомер ...., который имеет два побочных эффекта ...
- тест занимает 3 секунды ... и мне обычно нравится, когда мои тесты выполняются за миллисекунды
- время выполнения теста варьируется на +/- 10 мс или около того, что может привести к сбою теста, если я не учту эту разницу.
Что было бы неплохо, если бы был способ смоделировать эту зависимость от времени, чтобы мой тест мог выполняться быстрее и быть достаточно последовательным в своих результатах. К сожалению, я не могу придумать, как это сделать ... и поэтому я подумал, что могу спросить и посмотреть, сталкивался ли кто-нибудь из вас с этой проблемой ...