2016-11-30 12 views
1

私は毎分の集計を計算するStormトポロジを持っています。 私はJavaユニットテストでアプリケーションをカバーしたいと思いますが、私は Javaユニットテストの実例を見つけることができません。Apache Stormでシミュレーション時間を使ってJava単体テストを書く方法は?

時間の変化をシミュレートし、トポロジの出力を取得してテストする必要があります。

+0

これはおそらく役に立ちます:https://github.com/mjsax/aeolus/tree/master/queries/lrb/src/test/java/de/hub/cs/dbis/lrb/operators –

+0

ありがとうございました。テストでは、ボルトごとにテストしています。 1回のテストでトポロジ全体をテストしたいと思います。私はそれが "テスト"クラスを使用する必要があると思う。 –

+0

'LocalCluster'を使ってみましたか? –

答えて

0

解決策はあるように思わ:

一緒 Timeクラスとその有用手動タイム前進方法で(どういうわけかすべてのJavadocから欠落) Testingクラスを利用
Testing.withSimulatedTimeLocalCluster(new TestJob() { 
    public void run(Cluster cluster) { 
     // your testing logic here. 
     Time.advanceTime(100); 
    } 
}); 

これは、ウィンドウのスライディングなどのために使用されるStormの内部時計に役立つことに注意してください。あなた自身のコードでは、シミュレーションされた時間も認識する必要があります。 Javaの世界でこれを行うための標準的な方法として、Clockクラス(Java 8のみ)、または012oda6-timeを使用している場合はDateTimeUtilsクラスがあります。

関連する問題