Ich schreibe einen super einfachen asynchronen Code. Speichern Sie einfach eine Datei außerhalb des Threads.
Ich möchte diesen Code mit dem MSTest-Unit-Test-Framework in Microsoft Visual Studio Team System 2008 testen.
Wie mache ich das?
Ich möchte die Testmethode einfach blockieren, bis die Methode zurückkehrt. Ich kann mir einige Möglichkeiten vorstellen, dies zu tun, aber ich bin überwältigt, dass es keine Best Practices oder Hilfsklassen gibt.
Ich sehe viel für Silverlight, aber nichts generisches.
.net
unit-testing
Kevin Moore
quelle
quelle
Antworten:
Visual Studio 2012 (früher als "Visual Studio 11" bekannt) führte die Unterstützung für asynchrone Tests ein . Es sieht aus wie das:
Wie in den Kommentaren erwähnt, ist der
Task
Rückgabetyp wichtig . Es funktioniert nicht, wenn Sie die Methode als zurückgegeben deklarierenvoid
.quelle
Task
Rückgabetyp obligatorisch ist -void
funktioniert nicht (zumindest nicht bei VS2013 Update 4)void
Zurückkehren von asynchronen Methoden nicht erwartet werden kann)Verwenden Sie stattdessen die SystemWrapper- Bibliothek, anstatt die System.IO-Methoden direkt aufzurufen . Dann können Sie in Ihren Tests die Aufrufe nach Belieben verspotten, alles, was Sie möchten, einschließlich Fehlerbedingungen, zu Ihrem Test zurückbringen und überprüfen, ob Ihre Logik wie erwartet funktioniert.
Wenn Sie ein Beispiel sehen möchten, schauen Sie sich diesen Blog-Beitrag an, der zeigt, wie es mit RhinoMocks verwendet werden kann.
quelle