Ich bin Einheit, die eine Klasse mit einer Eigenschaft testen, deren Wert sich häufig ändert, abhängig von der Kommunikation, die sie von einer anderen Komponente erhält. Wenn die Klasse 5 Sekunden lang keine Kommunikation empfängt, wird die Eigenschaft auf einen Standardwert zurückgesetzt.Komponententests mit Timeouts
Es ist einfach für mich, die kommunizierende Komponente zu stubben und zu verspotten, um die Werte auszulösen, für die ich testen möchte. Das Problem ist, dass, wenn ich meine Komponententests auf einem Computer ausfühle, der beschäftigt ist (wie ein Build-Rechner), und es eine ausreichend lange Verzögerung gibt, um die Eigenschaft als Standard festzulegen, dann wird mein Komponententest fehlschlagen.
Wie testen Sie, um sicherzustellen, dass diese Eigenschaft den richtigen Wert bei der Simulation verschiedener Kommunikationsbedingungen hat?
Eine Idee ist es, meinen Code neu zu strukturieren, so dass ich den Teil der Klasse, der das Timeout steuert, stopfen kann. Ein anderer besteht darin, meinen Komponententest so zu schreiben, dass er erkennen kann, ob er aufgrund einer Zeitüberschreitung ausgefallen ist, und dies in den Testergebnissen anzeigt.
Ich wählte diesen Weg zu gehen, weil es die einfachste Lösung für meine Situation war. Die anderen Vorschläge waren auch sehr gut. Danke allen! –