C # Unit Testing - Thread.Sleep (x) - Verspotten der Systemuhr

Ich muss eine Methode testen, die nach einem Intervall eine bestimmte Menge an Arbeit erledigt.

while (running)
{
    ...
    // Work
    ...
    Thread.Sleep(Interval);
}

Interval wird als Parameter an die Klasse übergeben, sodass ich nur 0 oder 1 übergeben kann, aber ich war daran interessiert, wie ich die Systemuhr verspotten kann, wenn dies nicht der Fall ist.

In meinem Test möchte ich die Zeit einfach per TimeSpan vorverlegen könnenInterval und den Thread aufwachen lassen.

Ich habe noch nie Tests für Code geschrieben, der auf den ausführenden Thread einwirkt, und ich bin mir sicher, dass es einige Fallstricke gibt, die vermieden werden müssen. Bitte erläutern Sie, welchen Ansatz Sie verwenden.

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage