Потребительский тест Spring Cloud Stream Kafka - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь настроить тестирование, как предлагается здесь, на GitHub ссылка

        Map<String, Object> senderProps = KafkaTestUtils.producerProps(embeddedKafka);
    DefaultKafkaProducerFactory<Integer, String> pf = new DefaultKafkaProducerFactory<>(senderProps);
    try {
        KafkaTemplate<Integer, String> template = new KafkaTemplate<>(pf, true);
        template.setDefaultTopic("words");
        template.sendDefault("foobar");

    --> ConsumerRecord<String, String> cr = KafkaTestUtils.getSingleRecord(consumer, "output");
        log.debug(cr);
    }
    finally {
        pf.destroy();
    }

Где StreamProcessor установлен на

@StreamListener
    @SendTo("output")
    public KStream<?, WordCount> process(@Input("input") KStream<Object, String> input) {

        return input.map((key, value) -> new KeyValue<>(value, new WordCount(value, 10, new Date(), new Date())));
    }

-> строка никогдапотребляет сообщения, которые, на мой взгляд, должны быть в теме «выходные данные», поскольку @Streamprocessor имеет @SendTo («выходные данные»)

  • Я хочу иметь возможность проверять сообщения, обработанные потоком.

1 Ответ

0 голосов
/ 11 октября 2018

Вы должны использовать фактическую тему, к которой привязан ваш output.У вас есть конфигурация для spring.cloud.stream.bindings.output.destination?Это должно быть значение, которое вам нужно использовать.Если вы не установите это, по умолчанию будет то же самое, что и привязка - output в этом случае.

...