8

Java でマルチスレッド コードの単体テストを作成する場合、どのフレームワークをお勧めしますか? たとえば、いくつかの許可された実行パスと特定の除外パスを持つ一連のスレッドを実行することになっているプログラムがある場合 (「実行可能ユニット 1、2、および 3 は並行して実行でき、少なくとも 2 つを実行する必要がある」など)並行して、4 は常に 3 の後に実行する必要があります")。

4

4 に答える 4

3

JUnit@Ruleについて読んで、並行性テストに使用することをお勧めします。

于 2012-04-13T14:05:26.943 に答える
2

非常に使いやすいフレームワークであるContiPerf2をお勧めします。実行パスなどを宣言する可能性はないと思いますが。

于 2012-04-13T16:35:45.090 に答える
1

ここで説明されているように、パラメータ化された JUnit テストを使用できます: http://junit.org/junit/javadoc/4.5/org/junit/runners/Parameterized.html

ただし、別のスレッド プールを使用するなどして、自分でスレッド ロジックをプログラムする必要があります。

コードがスレッドセーフであることを証明したい場合は、pathfinder (http://javapathfinder.sourceforge.net/) を参照してください。

于 2012-04-14T00:05:53.377 に答える
1

このスレッドでは、並行コードをテストするための一般的なアプローチについて説明します。

カスタム Barrier の Test クラスの設計

特定のフレームワークの場合、 tempus-fugitには並行して実行するための JUnit ルールがいくつかありますが、上記で提案したように、テストにはより多くのロジックを含める必要があります。

于 2012-04-20T09:52:22.023 に答える