Ich versuche Folgendes zu testen:
%Vor%mit folgendem Komponententest:
%Vor%Message_HB1ToHB2 () gibt nur eine Zeichenkette zurück und die Methode "Delay Delivery" ist
%Vor%Ich benutze Moq als Mock Framework und MSTest als Testframework. Wenn ich den Komponententest starte, bekomme ich folgende Ausgabe:
%Vor%Abgesehen vom offensichtlichen "Code-Geruch", der das Thread.Sleep in den obigen Methoden verwendet, ist das Ergebnis des Komponententests nicht das, was ich erreichen möchte.
Kann irgendjemand einen besseren / präziseren Weg vorschlagen, das Moq-Framework zu verwenden, um eine Verzögerung der "Zustellung" der Nachricht zu simulieren. Ich habe etwas vom "Kleber" -Code weggelassen und nur die relevanten Teile eingeschlossen. Lassen Sie mich wissen, wenn etwas, das ich weggelassen habe, Sie davon abhält, die Frage zu verstehen.
Wenn du möchtest, dass ein Moq-Mock nur eine Weile sitzt und nichts tut, kannst du einen Callback verwenden:
%Vor% Ich habe das in LinqPad versucht und wenn Sie Thread.Sleep()
anpassen, variiert die Ausführungszeit entsprechend.
Wenn Sie Ihren Mock einrichten, können Sie dem Thread sagen, dass er in der Return-Funktion schlafen soll:
%Vor%Tags und Links c# unit-testing mstest moq