Dieser Artikel wurde maschinell übersetzt.

Anmerkung der Redaktion

Async auf die Probe gestellt

Michael Desmond

Michael DesmondDer Leitartikel in dieser Ausgabe des MSDN Magazine konzentrieren sich auf ein geteiltes Thema: Die Aufgabe des Komponententests asynchronen Codeprojekte verwalten.

Stephen Cleary hat weitgehend über die Async-Entwicklung in den letzten paar Jahren hier im MSDN Magazinegeschrieben, und seinem Feature-Artikel "Unit Testing asynchronen Code" untersucht, wie Komponententests Async-Projekte beweisen angepasst werden muss. Blickt er auf einige der aktuellen Einheit Testframeworks — wie MSTest NUnit und xUnit — und bietet Strategien dafür optimale Ergebnisse zu erzielen. Sven Grand schließt sich mit dem zweiten Feature-Artikel in dieser Ausgabe "Unit Testing asynchronen Code: Drei Lösungen für bessere Tests." Er bietet drei Lösungen zur Verbesserung der Gestaltung der getesteten Async Code mit dem Ziel der Beseitigung von Komponententests, die langsam und zerbrechlich sind.

Asynchrone Programmierung ist natürlich ein Thema der laufenden geht es hier beim MSDN Magazine. Zurück in der Ausgabe vom Oktober 2011 Microsoft-Experten Eric Lippert, Mads Torgersen und Stephen Toub schrieb eine Dreierwette Async-themed Features, die die neue Async Vorschau und Schlüsselwörter in Visual Studio 2012 erwarten (msdn.microsoft.com/magazine/hh463583). Seitdem haben wir fast ein Dutzend Artikel Async-Entwicklung veröffentlicht. Einer von denen — Clearys März 2013 Artikel, "Best Practices in asynchrone Programmierung" — zählt die meisten-lesen-Artikel in den letzten zwei Jahren (msdn.microsoft.com/magazine/jj991977).

Der Punkt ist, Async ist ein heißes Thema – und das aus gutem Grund. Als Grand schreibt in seinem Artikel in diesem Monat "ob Entwickler für CPU-basierte Parallelität oder IO-basierte Parallelität, asynchrone zu helfen, das Beste aus den Ressourcen zur Verfügung stellen und letztlich mehr beschäftigt sind mit weniger. Stärker auf Client-Anwendungen und skalierbarer Serveranwendungen sind alle innerhalb der Reichweite."

Die Vorteile der asynchronen Entwicklung liegen auf der Hand – besonders in einer Welt zunehmend Wolken getrieben — aber asynchrone Programmierung stellt eine Herausforderung für Entwickler, die neu in die Praxis. Als Cleary in einem Interview sagt: "Eine Menge von Async-Tutorials erklären wie mithilfe von Async/erwarten, aber sie nicht den viralen Natur des Async Entwickler vorbereiten. Also wenn sie eine einzelne Async-Methode zu schreiben beginnen und das Async/erwarten Zeug durch ihren Code wächst, die Warnungen losgehen und sie nach Überprüfung suchen ist, dass dies eigentlich korrekt."

Deshalb diese Ausgabe des MSDN Magazine mit einem Paar der Artikel konzentriert sich auf Komponententests asynchronen Code zweigt. Testen ist eines dieser Dinge, die zur Seite gedrückt bekommen können, wenn Zeitpläne eng bekommen. Dennoch ist eine strenge und disziplinierte Test-Regime entscheidend für konsistente Codequalität. Die beiden Features helfen diesen Monat Entwickler sicherstellen, dass ihre Async-Entwicklung in einer gut strukturierten und unterstützten Umgebung geschieht.

"Die meisten Herausforderungen für Unit-Tests asynchronen Code sind Komponententests synchrone Code identisch. Code ist einfacher zu testen, wenn sie gut entworfen ist,"sagt Cleary. "Für asynchrone Code kann ein funktioneller Ansatz hilfreich sein – mit anderen Worten, Zurückgeben der Ergebnisse statt Einstellungswerte als Nebenwirkungen."

Grand sagt, ist es wichtig, den Fokus testen Bemühungen, wie Entwickler am Ende können Tests Bibliothekscode, der von benutzerdefiniertem Code aufgerufen wird. "Du musst nicht schreiben einen Test, um sicherzustellen, dass Microsoft Task.Run wirklich funktioniert. Glauben Sie mir, es funktioniert. Die Tests einfacher und sauberer, wenn es Ihnen gelingt, nur Ihren eigenen Code zu testen sagt, "Grand.

Ist Ihre Dev shop schreiben asynchronen Code und wie haben Sie angepasst, Tests ausführen, um es aufnehmen? E-Mail me bei mmeditor@microsoft.com.


Michael Desmond ist Chefredakteur der MSDN Magazine.