ROT: Fehler in Test-Logik aufgedeckt
authorKai Moritz <kai@juplo.de>
Fri, 19 Aug 2022 09:10:52 +0000 (11:10 +0200)
committerKai Moritz <kai@juplo.de>
Fri, 19 Aug 2022 09:22:00 +0000 (11:22 +0200)
* Einige Assertions in dem Test für die Offset-Position nach einem
  Logik-Fehler waren fehlerhaft.
* Dies ist bisher nicht aufgefallen, weil der Test nicht scharf genug
  war: Er hat so wenig Nachrichten gesendet, dass die fehlerhaften
  Assertions nicht aufgefallen sind, weil es nie zu einem Commit gekommen
  ist, bevor der Fehler ausgelöst wurde.
* TODO: Der Test ist wahrscheinlich immer noch in hohem Maße abhängig
  von der Ausführungsgeschwindigkeit auf dem Test-System. Besser wäre
  es, wenn die Verarbeitung künstlich gedrosselt würde, so dass die
  Timing-Annahmen zu den asynchron ablaufenden Operationen nicht auf
  das Testsystem abgestimmt werden müssen.

src/test/java/de/juplo/kafka/ApplicationTests.java
src/test/java/de/juplo/kafka/GenericApplicationTests.java

index 8369a7b..1e73040 100644 (file)
@@ -36,12 +36,12 @@ public class ApplicationTests extends GenericApplicationTests<String, Long>
 
             for (int partition = 0; partition < 10; partition++)
             {
-              for (int key = 0; key < 10; key++)
+              for (int key = 0; key < 10000; key++)
               {
                 i++;
 
                 Bytes value = new Bytes(longSerializer.serialize(TOPIC, (long)i));
-                if (i == 77)
+                if (i == 99977)
                 {
                   if (logicErrors)
                   {
index ebad5a8..b0abf37 100644 (file)
@@ -37,7 +37,7 @@ import static org.awaitility.Awaitility.*;
                properties = {
                                "consumer.bootstrap-server=${spring.embedded.kafka.brokers}",
                                "consumer.topic=" + TOPIC,
-                               "consumer.commit-interval=1s" })
+                               "consumer.commit-interval=500ms" })
 @EmbeddedKafka(topics = TOPIC, partitions = PARTITIONS)
 @Slf4j
 abstract class GenericApplicationTests<K, V>