2017-10-17 18 views
2

私はカフカサーバを設定し、プロデューサを使用してメッセージを送信することで自分のコードをローカルでテストしようとしましたが、これに対してユニットテストを書く方法があるかどうかは疑問ですコードの一部(消費者が受け取ったメッセージが正しいかどうかをテストする)。Akka Streams Kafka - コンシューマ向けユニットテスト

val consumerSettings = ConsumerSettings(system, 
    new ByteArrayDeserializer, new StringDeserializer) 
    .withBootstrapServers("localhost:9092") 
    .withGroupId("group1") 
    .withProperty(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest") 

val done = Consumer.committableSource(consumerSettings, 
    Subscriptions.topics("topic1")) 
    .map { msg => 
    msg.committableOffset.commitScaladsl() 
    } 
    .runWith(Sink.ignore) 

答えて

1

あなたは、次のツールを使用してコードをテストできます。

  • ScalaTest
  • scalatest-embedded-kafkaは:ScalaTestで動作し、メモリ内のカフカのインスタンスを作成することができます。
  • Akka Streams Testkit:ストリーム要素(すなわちメッセージ)を検査し、その要求を制御することができるTestSink.probeを提供します。

Akka Streams Kafkaプロジェクトでは、上記のテストを独自のテストで使用しています。 IntegrationSpecをご覧ください。あなたのニーズに合わせて調整することができます。

関連する問題