Spring Boot Migration Java 8, JUnit4 nach Java11 JUnit5https://www.cmseo.ch/täglich?&atomThu, 28 Mar 2024 15:20:19 +0000stack.ch
https://stack.ch/
b067fd7c-ed16-11ee-8c11-005056bb85fbSimtech AG - Blog - Spring Boot Blogs - Spring Boot Migration Java 8, JUnit4 nach Java11 JUnit5
https://www.cmseo.ch/täglich
b067fe8b-ed16-11ee-8c11-005056bb85fbThu, 28 Mar 2024 15:20:19 +0000Blog Spring Boot Migration Java 8, JUnit4 nach Java11 JUnit5
https://www.cmseo.ch/täglich
b067ffd3-ed16-11ee-8c11-005056bb85fbThu, 28 Mar 2024 15:20:19 +0000
https://www.cmseo.ch/täglich
b0680147-ed16-11ee-8c11-005056bb85fbThu, 28 Mar 2024 15:20:19 +0000Das Rad dreht sich immer schneller mit Spring Boot und Java. Fast täglich könnten wir unsere Anwendung auf neue Versionen und Libraries migrieren. Eine gröbere Umstellung ist der Wechsel von Java 8 nach Java 11 und JUnit4 nach JUnit5. Wir zeigen anhand eines Beispiels die minimale Migration.
https://www.cmseo.ch/täglich
b06802b1-ed16-11ee-8c11-005056bb85fbThu, 28 Mar 2024 15:20:19 +0000Laden Sie das Maven Projekt vorlage.zip herunter. Starten Sie Eclipse oder eine andere IDE und importieren Sie das Vorlagen Projekt (JumpStart):In Eclipse wird das Projekt geladen mit Java 8 und JUnit 4. Testen Sie das Projekt über das Terminal via -> mvn clean install -U Der Maven Build sollte fehlerfrei funktionieren:
https://www.cmseo.ch/täglich
b0680918-ed16-11ee-8c11-005056bb85fbThu, 28 Mar 2024 15:20:19 +0000Wir wechseln nun die Java Version von 8 auf 11:Das Projekt basiert nun auf Java 11, testen Sie den Maven BuildDas Projekt funktioniert immer noch ohne Fehler.
https://www.cmseo.ch/täglich
b0680a7b-ed16-11ee-8c11-005056bb85fbThu, 28 Mar 2024 15:20:19 +0000Im Maven POM File migrieren wir den Spring Stack von Version 2.1.8 nach 2.3.3:<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>Der Maven Build sollte immer noch funktionieren.
https://www.cmseo.ch/täglich
b0680c62-ed16-11ee-8c11-005056bb85fbThu, 28 Mar 2024 15:20:19 +0000Wir definieren im Maven pom.xml die Java 11 Version:<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>>
<java.version>11</java.version>
</properties>Der Maven Build sollte immer noch funktionieren.
https://www.cmseo.ch/täglich
b0680e47-ed16-11ee-8c11-005056bb85fbThu, 28 Mar 2024 15:20:19 +0000Die Migration nach JUnit 5 erfolgt via das spring-boot-starter-test. Passen Sie die Dependancy wie folgt an:<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>Die Unit Tests ergeben einen Kompiliationsfehler.Öffnen Sie die Test Datei JumpstartApplicationJpaTests.java und entfernen Sie die fehlerhaften import Statements.Entfernen Sie die @RunWith(SpringRunner.class) Annotationen.Importieren Sie die Annotation @Test und die assert Anweisungen neu mit den Jupiter Klassen:package ch.std.jumpstart;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.boot.web.server.LocalServerPort;
import ch.std.jumpstart.dto.CityDTO;
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class JumpstartApplicationJpaTests {
...
}Öffnen Sie die Test Datei JumpstartApplicationTests.java und korrigieren Sie die Fehler wie folgt:package ch.std.jumpstart;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.skyscreamer.jsonassert.JSONAssert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import ch.std.jumpstart.rest.CityAutoCompleteController;
@ExtendWith(SpringExtension.class)
@WebMvcTest(CityAutoCompleteController.class)
@ActiveProfiles("test")
public class JumpstartApplicationTests {
@Autowired
private MockMvc mvc;
@Test
public void contextLoads() {
}
@Test
public void testCityAutoCompleteController() throws Exception {
MvcResult mvcResult = mvc.perform(get("/rest/auto/cities?value=Bern").contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk()).andReturn();
String expected = "[Bern]";
String actual = mvcResult.getResponse().getContentAsString();
JSONAssert.assertEquals(expected, actual, false);
}
}Der Maven Build sollte wieder funktionieren und die Migration ist abgeschlossen.
https://www.cmseo.ch/täglich
b068152a-ed16-11ee-8c11-005056bb85fbThu, 28 Mar 2024 15:20:19 +0000Die JUnit 5 Libraries werden durch die Spring Boot Libraries referenziert. Referenzieren Sie die JUnit Libraries nie direkt via Eclipse.Die migrierte Anwendung finden Sie hier migriert.zip
https://www.cmseo.ch/täglich
b0681bd0-ed16-11ee-8c11-005056bb85fbThu, 28 Mar 2024 15:20:19 +0000War dieser Blog für Sie wertvoll. Wir danken für jede Anregung und FeedbackÜber uns
https://www.cmseo.ch/about
Thu, 28 Mar 2024 15:20:19 +0000b0681e15-ed16-11ee-8c11-005056bb85fbAktuell
https://www.cmseo.ch/
Thu, 28 Mar 2024 15:20:19 +0000b0681eca-ed16-11ee-8c11-005056bb85fbAGB
https://www.cmseo.ch/agb
Thu, 28 Mar 2024 15:20:19 +0000b0681f63-ed16-11ee-8c11-005056bb85fbBildungswege
https://www.cmseo.ch/bildungswege
Thu, 28 Mar 2024 15:20:19 +0000b0681fff-ed16-11ee-8c11-005056bb85fbBlog
https://www.cmseo.ch/blog
Thu, 28 Mar 2024 15:20:19 +0000b06820a4-ed16-11ee-8c11-005056bb85fbRufen Sie mich an
https://www.cmseo.ch/callus
Thu, 28 Mar 2024 15:20:19 +0000b0682142-ed16-11ee-8c11-005056bb85fbCharts
https://www.cmseo.ch/charts
Thu, 28 Mar 2024 15:20:19 +0000b06821d7-ed16-11ee-8c11-005056bb85fbConsulting
https://www.cmseo.ch/consulting
Thu, 28 Mar 2024 15:20:19 +0000b0682270-ed16-11ee-8c11-005056bb85fbKontakt
https://www.cmseo.ch/contact
Thu, 28 Mar 2024 15:20:19 +0000b0682306-ed16-11ee-8c11-005056bb85fbAusbildung/Kurse
https://www.cmseo.ch/education
Thu, 28 Mar 2024 15:20:19 +0000b068239f-ed16-11ee-8c11-005056bb85fbSoftware Engineering
https://www.cmseo.ch/engineering
Thu, 28 Mar 2024 15:20:19 +0000b068244c-ed16-11ee-8c11-005056bb85fbFreelancer
https://www.cmseo.ch/freelancer
Thu, 28 Mar 2024 15:20:19 +0000b06824ed-ed16-11ee-8c11-005056bb85fbImpressum
https://www.cmseo.ch/impressum
Thu, 28 Mar 2024 15:20:19 +0000b0682588-ed16-11ee-8c11-005056bb85fbKursleiter
https://www.cmseo.ch/kursleiter
Thu, 28 Mar 2024 15:20:19 +0000b0682626-ed16-11ee-8c11-005056bb85fbNetzwerk
https://www.cmseo.ch/network
Thu, 28 Mar 2024 15:20:19 +0000b06826ba-ed16-11ee-8c11-005056bb85fbReferenzen
https://www.cmseo.ch/references
Thu, 28 Mar 2024 15:20:19 +0000b0682760-ed16-11ee-8c11-005056bb85fbSitemap
https://www.cmseo.ch/sitemap
Thu, 28 Mar 2024 15:20:19 +0000b0682806-ed16-11ee-8c11-005056bb85fbTools
https://www.cmseo.ch/tools
Thu, 28 Mar 2024 15:20:19 +0000b068289b-ed16-11ee-8c11-005056bb85fbVision
https://www.cmseo.ch/vision
Thu, 28 Mar 2024 15:20:19 +0000b0682935-ed16-11ee-8c11-005056bb85fb