Наша топология Apache Storm прослушивает сообщения от Kafka с помощью KafkaSpout и после выполнения большого количества сопоставлений/уменьшения/обогащения/агрегации и т. д. и т. д. и т. д., наконец, вставляет данные в Cassandra. Есть еще один вход kafka, где мы получаем пользовательские запросы на данные, если топология находит ответ, а затем отправляет его в третью тему kafka. Теперь мы хотим написать тест E2E с помощью Junit, в котором мы можем напрямую программно вставлять данные в топологию, а затем, вставляя сообщение пользовательского запроса, мы можем утверждать в третьем пункте, что ответ, полученный на наш запрос, правильный.
Чтобы добиться этого, мы решили запустить EmbeddedKafka и CassandraUnit, а затем заменить ими настоящие Kafka и Cassandra, а затем мы можем начать топологию в контексте этого единственного теста Junit.
Но наш подход плохо сочетается с JUnit, потому что он делает эти тесты слишком громоздкими. Запуск kafka, cassandra и топологии занимают много времени и потребляют много ресурсов. Есть ли в Apache Storm что-нибудь, что может поддерживать тесты, которые мы планируем написать?