I'm using Kafka Streams, and I'm attempting to write integration tests for a stream processor.
The processor listens to a topic, processes incoming messages, and writes some data to Cassandra tables. I'm attempting to write a test which produces some test data, and then checks whether or not the expected data was written to Cassandra. It looks like this: - Step 1: Produce data in the test - Step 2: Kafka stream gets triggered - Step 3: Test checks whether cassandra got populated The problem is, Step 3 is occurring before Step 2, and as a result, the test fails as it doesn't find the data in the table. I've resolved this by adding a Thread.sleep(2000) call after Step 1, which ensures that Step 2 gets triggered before Step 3. However, I'm wondering if there's a more reliable way of blocking the test until Kafka stream processor gets triggered? At the moment, I'm using 1 thread for the processor. If I increase that to 2 threads, will that achieve what I want?