В одном из моих предыдущих постов в блоге обсуждалось тестирование приложения Kafka Streams. Вот соответствующий совет, который может пригодиться!
Во время тестирования вы можете столкнуться с java.util. Исключение NoSuchElementException: Неинициализированная тема
исключение. Скорее всего, это связано с тем, что вы вызвали Тема вывода теста.Значение чтения
(например, как часть проверки утверждения
). Проблема заключается не в самом исключении, а в сообщении об ошибке Неинициализированная тема
которая может сбивать с толку. Исключение, скорее всего, появится, если ваша обработка Топология
работала не так, как ожидалось, и в теме не было записи ( Тема вывода теста
) вы пытались читать с.
Рассмотрим этот пример:
TestInputTopicinputTopic = ...; TestOutputTopic outputTopic = ...; inputTopic.pipeInput("foo", "bar"); assertThat(outputTopic.readValue(), equalTo("foobar"));
Чтобы избежать путаницы, вам следует подтвердить, является ли тема вывода пустой – как до, так и (необязательно) после проверки значения, напр.
assertThat("output topic was empty",outputTopic.isEmpty(), is(false)); inputTopic.pipeInput("foo", "bar"); assertThat(outputTopic.readValue(), equalTo("BAR")); assertThat("output topic was not empty",outputTopic.isEmpty(), is(true));
Обладающий Утверждаю, что
(с соответствующим сообщением об ошибке) перед утверждением
инг вывод темы.readValue()
гарантирует, что вы получите ответ об ошибке, который вы можете понять. Что-то похожее на:
testCase1(foo.bar.AppTest) Time elapsed: 0.066 sec <<< FAILURE! java.lang.AssertionError: output topic was empty Expected: isbut: was at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20) at org.junit.Assert.assertThat(Assert.java:956) at com.foo.bar.AppTest.testCase1(AppTest.java:58) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Сейчас тема вывода была пустой
имеет смысл .. по крайней мере, для меня!
Если вас интересуют потоки Кафки, ознакомьтесь с некоторыми из моих предыдущих блогов! Будем рады получить ваши отзывы через Твиттер или просто оставьте комментарий 🙏🏻
Оригинал: “https://dev.to/itnext/kafka-streams-testing-tip-making-sense-of-uninitialized-topic-exception-47d8”