2017-10-17 4 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을 살펴보고 필요에 따라 조정할 수 있습니다.

관련 문제