2011-10-29 5 views
2

BlockingQueueインターフェイスをテストするための既存のJUnitテストが既にありますか?いくつかのクラスをダウンロードしてプレーをしてから、それが赤色に変わる(うまくいけば緑:-))、すべてのテストケースを考えて一日過ごす必要はありませんか?BlockingQueueインターフェイスのJUnitテスト

私はグーグルでは何も見つかりませんでした。

いくつかのアイデア?

EDIT:テストケース提供G_H基本をデバッグするための非常に良好であったこと。おそらくレースやデッドロックを引き起こす重いマルチスレッドの使用のための良いテストはまだありますか?

答えて

1

BlockingQueueインターフェイスは、Java Specification Request 166(JSR-166)で開発されたJava並行性ユーティリティの一部であるため、対応するテクノロジ互換性ツールキット(または「tck」)のコードは、良い出発点。結局のところ、仕様の実装は互換性があるとみなされるためには、キットのテストに合格する必要があります。

私はJCPサイト(メンバーシップが必要かもしれません)から手に入れたことはありませんでしたが、リソースはavailable hereのようです。 BlockingQueueTestとそのスーパークラスJSR166TestCaseが注目されています。最新のリビジョンはそれぞれherehereです。クリエイティブなコモンズの下でライセンスされているようですが、私は、あなた自身のために、特定のリンクの信頼性とライセンスの制約を確認することをお勧めします。

幸いにも、これはすべてJUnitを使用しているようです。バージョンについてはわかりませんが、アノテーションではなく、testMethodの規約を使用しています。いくつかの順応で、私はこのコードがあなたを得るために良いと思うでしょう。

+0

ありがとうございます。テストは少し修正しても動作しますが、実際には基本的なテストしかありません。複数のスレッドが開始されていること、競合状態がテストされていること、デッドロックが検出されていることはわかりません。それは私が基本的なjavadocの仕様よりも怖いものです... –

+0

@FranzKafka実際にテストケースを読んでいなかった...私はその種のものもテストされると期待しています。これは通常、単体テストの作業です。同期コレクションのために自分自身でやったこともあり、ヘルパークラスが必要でした。おそらく、そこにはマルチスレッドのための良いテストスイートがあります。私はそれを見ることにも興味があります。 –