2013-03-21 13 views
5

Ich habe eine Klasse, die mit String-Wörterbuch funktioniert. Eine Methode besteht darin, das Wörterbuch zu initialisieren, eine weitere dient zum Hinzufügen eines neuen Paares zum Wörterbuch, und die dritte Methode dient zum Verketten eines Wörterbuchs in eine Zeichenfolge.MS CHESS ist veraltet?

Ich möchte Unit-Test, wenn seine Thread-Safe, indem Sie init-adding-adding- * -Einfügung-Finalisierung Methoden in verschiedenen Threads gleichzeitig. Eine neue Instanz der Klasse wird vor der Verwendung erstellt, das Wörterbuch ist nicht statisch. Also würde ich gerne wissen, ob es sicher ist.

Afaik, Testen von Threads in Unit-Tests ist nicht so eine gute Idee. Stattdessen hatte ich ein CHESS gefunden, das mit genau dem gleichen Zweck entworfen wurde: http://blog.decarufel.net/2009/05/how-to-test-your-multi-threaded-code.html

Allerdings sieht es aus wie veraltet. Irgendwelche modernen Alternativen/Vorschläge zu diesem Bereich?

+0

möglich Duplikat [Wie soll ich Unit-Test-threaded Code?] (Http://stackoverflow.com/questions/12159/how-should-i-unit-test-threaded-code) – marr75

Antwort

3

Als Alternative könnten Sie einen Blick auf die Verwendung der ConcurrentDictionary Art werfen, die diese speziellen Multithreading-Sorgen abstrahieren würde.

Wenn Sie jedoch weiterhin Ihren eigenen Mechanismus verwenden möchten (oder wenn Sie eine allgemeine Antwort auf die Frage haben möchten, wie Multi-Threaded-Code getestet werden soll), sieht es von this post aus, dass CHESS keineswegs veraltet ist. Die zugrunde liegende Technologie - Multithreading - hat sich seit der ersten Veröffentlichung meines Werkes überhaupt nicht geändert. Wenn Sie also kein spezifisches Problem damit haben, ist es völlig in Ordnung, weiterzumachen.

+0

Dank , ausgezeichnete Antwort. –