ユニットテストでは、マップをランダムな順序で設定する2つの結果をアサートする必要があります。ランダムな順序で出力される2つのJSON結果をアサートする
JSONs
のスキーマは同じですが、ほとんどの内容が異なります。
これらは、Kafka
ストリーム(JavaPairDStream
テスト)から来て、Jackson ObjectMapper
を使用してマップするJSON Strings
から変換され、次いでtuple2
から抽出されます。私はqueueStream
を使用していますが、奇妙なことに、Spark
のワークフローでテストするとランダムな注文です。
編集:私はセットは順序を変更する場合がありますので、List
を使用することを決定した...ここで
がJava
コードです:
//Create a list to store maps
List<Map<String, Object>> list = new ArrayList<>();
list.add(map1);
list.add(map2);
//Traverse each map in list and apply correct assertions
for (Map<String, Object> map : list) {
//if Event is "Event1", assertions for "Event1" Event
if (map.get("Event").toString().equals("Event1")) {
Assert.assertEquals(map.get("Event").toString(), "Event1");
more assertions go here...
} else {
//if Event is not "Event1", assertions for "Event2" Event
Assert.assertEquals(map.get("Event").toString(), "Event2");
more assertions go here...
}
}
注:私はので、これは今正常に動作します2つの異なるイベントでのみ動作します。しかし、この状況をスケーラビリティで処理する方法を学びたいと思います。
どのような言語ですか?サンプルコード(JSONとあなたのtry)を見せてもらえますか? –
更新されました。助けてくれてありがとう、@HubertGrzeskowiak! – dinky
次回に問題を述べてください。あなたはハーフ・ベーク・ソリューションを提示しており、達成しようとしていることは誰にも分かりません。 –