1
私は毎分の集計を計算するStormトポロジを持っています。 私はJavaユニットテストでアプリケーションをカバーしたいと思いますが、私は Javaユニットテストの実例を見つけることができません。Apache Stormでシミュレーション時間を使ってJava単体テストを書く方法は?
時間の変化をシミュレートし、トポロジの出力を取得してテストする必要があります。
私は毎分の集計を計算するStormトポロジを持っています。 私はJavaユニットテストでアプリケーションをカバーしたいと思いますが、私は Javaユニットテストの実例を見つけることができません。Apache Stormでシミュレーション時間を使ってJava単体テストを書く方法は?
時間の変化をシミュレートし、トポロジの出力を取得してテストする必要があります。
解決策はあるように思わ:
一緒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
クラスがあります。
これはおそらく役に立ちます:https://github.com/mjsax/aeolus/tree/master/queries/lrb/src/test/java/de/hub/cs/dbis/lrb/operators –
ありがとうございました。テストでは、ボルトごとにテストしています。 1回のテストでトポロジ全体をテストしたいと思います。私はそれが "テスト"クラスを使用する必要があると思う。 –
'LocalCluster'を使ってみましたか? –