| 

.NET C# Java Javascript Exception

0
Ich möchte in einer asynchronen Umgebnung testen ob alle Locks einwandfrei funktionieren bzw. ob alle Methoden die thread safe sein müssen es auch wirklich sind. Ich nutze als Unit-Test-Framework MS Test und als Isolation Framework Moq.

Gibt bei diesen evtl. Funktionalität die mir das Vorgehen ermöglicht? Am liebsten wäre mir nichts "selbst gebautes".
News:
24.02.2011
Hendrik Lösch 1,5k 1 9
1 Antwort
2
Ich habe schon mit beiden genannten Tools gearbeitet, und soweit ich weiß, gibt es da nichts in der Richtung.

Ich glaube, die Anforderung, Thread-Sicherheit (darum geht es Dir ja im Besonderen, nicht um Asynchronität im allgemeinen wie korrektes Aufrufen von Callbacks, oder?) zu testen, geht ein Stück über den Scope von Unit-Tests hinaus. Du bräuchtest (mindestens) zwei Threads, die auf Deinen zu testenden Code zugreifen, und zwar in allen Kombinationen abwechselnder "Arbeitsschritte" (i.d.R. noch feiner als Code-Zeilen). "In allen" deshalb, weil sich a priori kaum festlegen lässt, welche Kombinationen Probleme machen könnte und es auch bei weitem nicht so einfach ist, aus wenigen erfolgreich getesteten Abläufen die korrekte Funktion der Unit zu vermuten (nach der Devise "wenn es für 0 und für 100 funktioniert, wird es auch für 50 funktionieren"), wie man es ja sonst bei Unit-Tests macht - sprich: die geeigneten Testdaten auszuwählen, stelle ich mir hier als ein unlösbares Problem vor.

Ich würde hier eher auf intensive Code-Reviews und ausführliche Stress-Tests setzen. Eventuell lohnt es sich auch, bei Code-Analyse-Tools zu schauen, ob sie bestimmte Pattern fehlerhafter Implementierung erkennen können.
24.02.2011
Matthias Hlawatsch 13,2k 4 9
Mhm, das bestätigt jetzt meine Befürchtungen :( Ich hatte mich bereits im Kreis gedreht bei dem Versuch überhaupt zu definieren wie das Resultat meiner Auswertung aussehen soll.
Hendrik Lösch 24.02.2011

Stelle deine Unit-testing-Frage jetzt!