refactor(backend): Paketwurzel de.werkbaum, Tests auf RestTestClient
Das Backend-Geruest kam unter der Platzhalter-Wurzel com.example.editor herein und widersprach backend/CLAUDE.md. Umgezogen nach de.werkbaum: 17 Kotlin-Dateien, Gradle-group, apiPackage/modelPackage der OpenAPI-Generierung, die jacoco-Ausschluesse und das Cucumber-glue-Paket. Jetzt war es billig, mit jeder Woche Entwicklung waere es teurer geworden. Die BDD-Tests nutzen jetzt RestTestClient statt TestRestTemplate, das in Spring Boot 4 als Auslaufmodell gilt. Weil Cucumber Senden und Pruefen trennt, wird die fluent API nicht fuer Zusicherungen genutzt, sondern ueber returnResult das Ergebnis festgehalten. Nachgemessen: 22 Tests gruen, check inklusive Coverage-Verifikation besteht, 91,7 % Zeilenabdeckung, generierter Code weiterhin ausgeschlossen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
7684872a42
commit
f3afc8dfa8
@@ -8,7 +8,7 @@ plugins {
|
||||
jacoco
|
||||
}
|
||||
|
||||
group = "com.example"
|
||||
group = "de.werkbaum"
|
||||
version = "0.1.0-SNAPSHOT"
|
||||
|
||||
java {
|
||||
@@ -37,10 +37,9 @@ dependencies {
|
||||
|
||||
// --- Tests ---
|
||||
testImplementation("org.springframework.boot:spring-boot-starter-test")
|
||||
// TestRestTemplate liegt in Boot 4 im eigenen Modul (org.springframework.boot.resttestclient)
|
||||
// und braucht spring-boot-restclient zur Laufzeit
|
||||
// RestTestClient-Autokonfiguration (Boot 4). TestRestTemplate gilt dort als
|
||||
// Auslaufmodell; die BDD-Tests nutzen den Nachfolger aus spring-test.
|
||||
testImplementation("org.springframework.boot:spring-boot-resttestclient")
|
||||
testRuntimeOnly("org.springframework.boot:spring-boot-restclient")
|
||||
testImplementation("io.mockk:mockk:$mockkVersion")
|
||||
|
||||
// Behavior-Tests (BDD) mit Cucumber
|
||||
@@ -57,8 +56,8 @@ openApiGenerate {
|
||||
generatorName.set("kotlin-spring")
|
||||
inputSpec.set("$projectDir/src/main/resources/openapi/api.yaml")
|
||||
outputDir.set(layout.buildDirectory.dir("generated/openapi").get().asFile.path)
|
||||
apiPackage.set("com.example.editor.generated.api")
|
||||
modelPackage.set("com.example.editor.generated.model")
|
||||
apiPackage.set("de.werkbaum.generated.api")
|
||||
modelPackage.set("de.werkbaum.generated.model")
|
||||
configOptions.set(
|
||||
mapOf(
|
||||
"useSpringBoot4" to "true",
|
||||
@@ -106,7 +105,7 @@ tasks.jacocoTestReport {
|
||||
// Generierter Code zaehlt nicht zur Coverage
|
||||
classDirectories.setFrom(
|
||||
classDirectories.files.map {
|
||||
fileTree(it) { exclude("com/example/editor/generated/**") }
|
||||
fileTree(it) { exclude("de/werkbaum/generated/**") }
|
||||
}
|
||||
)
|
||||
}
|
||||
@@ -115,7 +114,7 @@ tasks.jacocoTestCoverageVerification {
|
||||
dependsOn(tasks.test)
|
||||
classDirectories.setFrom(
|
||||
classDirectories.files.map {
|
||||
fileTree(it) { exclude("com/example/editor/generated/**") }
|
||||
fileTree(it) { exclude("de/werkbaum/generated/**") }
|
||||
}
|
||||
)
|
||||
violationRules {
|
||||
|
||||
Reference in New Issue
Block a user