Springify: Refactor - Aufruf der Assertions vereinfacht
authorKai Moritz <kai@juplo.de>
Mon, 18 Apr 2022 11:37:33 +0000 (13:37 +0200)
committerKai Moritz <kai@juplo.de>
Mon, 18 Apr 2022 11:37:35 +0000 (13:37 +0200)
* Warum auch immer: Der Compiler erkennt den Typ des Generics in der
  springifizierten Version nur dann ohne erzwungenen Cast korrekt, wenn
  der `describeAs()`-Aufruf als letzes erfolgt.
* In der nicht springifizierten Version, ist die Aufrufreihenfolge egal:
  Der Compiler erkennt den Typ des Generics unabhängig davon korrekt.
* An ggf. transitiv angezogenen Abhängigkeiten liegt es laut
  `mvn help:effective-pom` nicht. Dies zeigt für beide Versionen (abgesehen
  von dem explizit ergänzten `spring-kafka`) exakt die selben
  Abhängigkeiten.

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

index 1d3546c..5a0f43d 100644 (file)
@@ -9,7 +9,6 @@ import org.apache.kafka.common.TopicPartition;
 import org.apache.kafka.common.errors.RecordDeserializationException;
 import org.apache.kafka.common.serialization.*;
 import org.apache.kafka.common.utils.Bytes;
-import org.assertj.core.api.OptionalAssert;
 import org.junit.jupiter.api.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration;
@@ -122,9 +121,9 @@ class ApplicationTests
                assertThatNoException()
                                .describedAs("Consumer should not be running")
                                .isThrownBy(() -> endlessConsumer.exitStatus());
-               ((OptionalAssert<Exception>)assertThat(endlessConsumer.exitStatus()))
-                               .describedAs("Consumer should have exited abnormally")
-                               .containsInstanceOf(RecordDeserializationException.class);
+               assertThat(endlessConsumer.exitStatus())
+                               .containsInstanceOf(RecordDeserializationException.class)
+                               .describedAs("Consumer should have exited abnormally");
        }