From: Kai Moritz <kai@juplo.de>
Date: Tue, 26 Jul 2022 14:03:10 +0000 (+0200)
Subject: Verhalten des Testfalls kontrollierbarer gemacht
X-Git-Tag: endless-stream-consumer-DEPRECATED^2^2^2~1^2~3^2
X-Git-Url: https://juplo.de/gitweb/?a=commitdiff_plain;h=be1b513f8bd7646f9ceb3a7ba90952641e3af125;p=demos%2Fkafka%2Ftraining

Verhalten des Testfalls kontrollierbarer gemacht

* Die Awaitility-Aufrufe pollen den zu prüfenden Zustand wenn nicht anders
  angegeben so häufig, wie es die CPU zulässt - also ohne Verzögerung
  zwischen den Überprüfungen.
* Das kann den Rechner temporär so überlasten, dass der erwartete Zustand
  in der abgewarteten Zeit gar nicht eintritt!
* Z.B. aufgetreten, wenn wie hier das Commit-Interval auf 1 Sekunde
  gesetzt ist, das Polling von Awaitility aber noch ungebremst durchgeführt
  wird.
* Um diese Quelle für falsche Fehler auszuschließen, wurde jetzt
  durchgängig ein Poll-Intervall von 1 Sekunde für Awaitility gesetzt.
---

diff --git a/src/test/java/de/juplo/kafka/ApplicationTests.java b/src/test/java/de/juplo/kafka/ApplicationTests.java
index 26a34e40..3bac537d 100644
--- a/src/test/java/de/juplo/kafka/ApplicationTests.java
+++ b/src/test/java/de/juplo/kafka/ApplicationTests.java
@@ -40,7 +40,7 @@ import static org.awaitility.Awaitility.*;
 		properties = {
 				"consumer.bootstrap-server=${spring.embedded.kafka.brokers}",
 				"consumer.topic=" + TOPIC,
-				"consumer.commit-interval=100ms" })
+				"consumer.commit-interval=1s" })
 @EmbeddedKafka(topics = TOPIC, partitions = PARTITIONS)
 @Slf4j
 class ApplicationTests
@@ -84,10 +84,12 @@ class ApplicationTests
 
 		await("100 records received")
 				.atMost(Duration.ofSeconds(30))
+				.pollInterval(Duration.ofSeconds(1))
 				.until(() -> receivedRecords.size() >= 100);
 
 		await("Offsets committed")
 				.atMost(Duration.ofSeconds(10))
+				.pollInterval(Duration.ofSeconds(1))
 				.untilAsserted(() ->
 				{
 					checkSeenOffsetsForProgress();
@@ -112,6 +114,7 @@ class ApplicationTests
 
 		await("Consumer failed")
 				.atMost(Duration.ofSeconds(30))
+				.pollInterval(Duration.ofSeconds(1))
 				.until(() -> !endlessConsumer.running());
 
 		checkSeenOffsetsForProgress();
@@ -120,6 +123,7 @@ class ApplicationTests
 		endlessConsumer.start();
 		await("Consumer failed")
 				.atMost(Duration.ofSeconds(30))
+				.pollInterval(Duration.ofSeconds(1))
 				.until(() -> !endlessConsumer.running());
 
 		checkSeenOffsetsForProgress();