5

文字列辞書で動作するクラスがあります。1つの方法は辞書を初期化するためのものであり、もう1つは辞書に新しいペアを追加するためのものであり、3番目の方法は辞書を文字列に連結するためのものです。

異なるスレッドでinit-adding-adding- * -adding-finalizingメソッドを同時に実行して、スレッドセーフかどうかを単体テストしたいと思います。クラスの新しいインスタンスは使用前に作成されます。辞書は静的ではありません。だから私はそれが安全かどうか確かに知りたいです。

Afaik、ユニットテストでスレッドをテストするのはそれほど良い考えではありません。代わりに、まったく同じ目的で設計されたCHESSを見つけました:http://blog.decarufel.net/2009/05/how-to-test-your-multi-threaded-code.html

しかし、その時代遅れのように見えます。この分野に関する最新の代替案/提案はありますか?

4

2 に答える 2

3

別の方法として、これらの特定のマルチスレッドの問題を抽象化 するConcurrentDictionary型の使用を検討することもできます。

ただし、独自のメカニズムを引き続き使用したい場合 (または、マルチスレッド コードをテストする方法に関する質問に対する一般的な回答が必要な場合)、この投稿から、CHESS は決して時代遅れではないように見えます。基礎となる技術であるマルチスレッドは、このツールが最初にリリースされて以来、私の知る限りではまったく変わっていません。そのため、このツールの使用に特別な問題がない限り、先に進むことは完全に合理的です。

于 2013-03-21T16:08:13.870 に答える
2

プロジェクトに最後にチェックインしたのは 2012 年 10 月でした。すべてが古くなっているとは言えません。

http://chesstool.codeplex.com/SourceControl/list/changesets

于 2013-03-21T16:09:47.493 に答える