{"id":8577,"date":"2017-07-22T02:22:42","date_gmt":"2017-07-22T00:22:42","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=8577"},"modified":"2024-07-13T10:09:33","modified_gmt":"2024-07-13T08:09:33","slug":"java-migration-von-junit-4-nach-junit-5","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=8577","title":{"rendered":"Rest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)"},"content":{"rendered":"<p>Wollte mal mein <a href=\"https:\/\/github.com\/IT-Berater\/TWRestUmgebung\" target=\"_blank\" rel=\"noopener noreferrer\">REST Testprogramm<\/a> auf JUnit 5 umstellen. Die neuen JUnit 5 Feature sind schon sehr interessant. Vor ein paar Tagen ist der neue M6 ver\u00f6ffentlicht worden (JUnit 5.0.0-M6 = Platform 1.0.0-M6 + Jupiter 5.0.0-M6 + Vintage 4.12.0-M6). Auch ist die Architektur nun grundlegend ge\u00e4ndert. Und evl. will man schon mal die Neuen Features testen. Es gilt nicht: <strong>&#8222;Wer testet ist Feige ;-)&#8220;<\/strong><\/p>\n<p>Was ist da so n\u00f6tig?<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/07\/Junit-Test.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/07\/Junit-Test.png\" alt=\"\" width=\"2732\" height=\"2048\" class=\"aligncenter size-full wp-image-8594\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/07\/Junit-Test.png 2732w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/07\/Junit-Test-300x225.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/07\/Junit-Test-768x576.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/07\/Junit-Test-1024x768.png 1024w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>JUnit 5 braucht zur Laufzeit Java 8. <\/p>\n<p>Versionen setzen <\/p>\n<pre class=\"lang:java decode:true \" >\r\n&lt;properties&gt;\r\n\t        &lt;java.version&gt;1.8&lt;\/java.version&gt;\r\n\t\t&lt;project.build.sourceEncoding&gt;UTF-8&lt;\/project.build.sourceEncoding&gt;\r\n\t\t&lt;restlet-version&gt;2.3.10&lt;\/restlet-version&gt;\r\n\t\t&lt;maven.compiler.source&gt;1.8&lt;\/maven.compiler.source&gt;\r\n\t\t&lt;maven.compiler.target&gt;1.8&lt;\/maven.compiler.target&gt;\r\n\t\t\r\n\t\t&lt;junit.version&gt;4.12&lt;\/junit.version&gt;\r\n\t\t&lt;junit.jupiter.version&gt;5.0.0-M6&lt;\/junit.jupiter.version&gt;\r\n\t\t&lt;junit.vintage.version&gt;${junit.version}.0-M6&lt;\/junit.vintage.version&gt;\r\n\t\t&lt;junit.platform.version&gt;1.0.0-M6&lt;\/junit.platform.version&gt;\r\n&lt;\/properties&gt;\r\n<\/pre>\n<p>Die neuen Abh\u00e4ngigkeiten hinzu:<!--more--><\/p>\n<pre class=\"lang:java decode:true \" >\r\n&lt;!-- Testframework JUnit 5 --&gt;\r\n\t\t&lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;org.junit.jupiter&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;junit-jupiter-api&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;${junit.jupiter.version}&lt;\/version&gt;\r\n\t\t\t&lt;scope&gt;test&lt;\/scope&gt;\r\n\t\t&lt;\/dependency&gt;\t\t\r\n\r\n                &lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;junit&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;junit&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;4.12&lt;\/version&gt;\r\n\t\t\t&lt;scope&gt;test&lt;\/scope&gt;\r\n                &lt;\/dependency&gt; \r\n\t\t\r\n\t\t&lt;!-- Only required to run tests in an IDE that bundles an older version --&gt;\r\n\t\t&lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;org.junit.platform&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;junit-platform-launcher&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;${junit.platform.version}&lt;\/version&gt;\r\n\t\t\t&lt;scope&gt;test&lt;\/scope&gt;\r\n\t\t&lt;\/dependency&gt;\t\r\n\t\t&lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;org.junit.jupiter&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;junit-jupiter-engine&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;${junit.jupiter.version}&lt;\/version&gt;\r\n\t\t&lt;\/dependency&gt;\t\r\n\t\t&lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;org.junit.vintage&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;junit-vintage-engine&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;${junit.vintage.version}&lt;\/version&gt;\r\n\t\t&lt;\/dependency&gt;\r\n<\/pre>\n<p>Neue static Imports ersetzen:<\/p>\n<pre class=\"lang:java decode:true \" >\r\nimport static org.junit.Assert.assertEquals;\r\nimport static org.junit.Assert.assertTrue;\r\n\r\nimport org.junit.BeforeClass;\r\nimport org.junit.Test;\r\n<\/pre>\n<p>durch<\/p>\n<pre class=\"lang:java decode:true \" >\r\nimport static org.junit.jupiter.api.Assertions.assertEquals;\r\nimport static org.junit.jupiter.api.Assertions.assertTrue;\r\n\r\nimport org.junit.jupiter.api.BeforeAll;\r\nimport org.junit.jupiter.api.Test;\r\n<\/pre>\n<p>Und die alte Annotation<\/p>\n<p><strong>@BeforeClass<\/strong><\/p>\n<p>durch <\/p>\n<p><strong>@BeforeAll<\/strong><\/p>\n<p>F\u00fcr die Eclipse Oxygen IDE gibt es beta Support. Das ist etwas aufw\u00e4ndiger. Deshalb nehmen wir den alte Runner. Pom erg\u00e4nzen:<\/p>\n<pre class=\"lang:default decode:true \" >\r\n&lt;dependency&gt;\r\n\t\t    &lt;groupId&gt;org.junit.platform&lt;\/groupId&gt;\r\n\t\t    &lt;artifactId&gt;junit-platform-runner&lt;\/artifactId&gt;\r\n\t\t    &lt;version&gt;${junit.platform.version}&lt;\/version&gt;\r\n\t\t    &lt;scope&gt;test&lt;\/scope&gt;\r\n&lt;\/dependency&gt;<\/pre>\n<p>und in der Klasse die Annotation: <strong>@RunWith(JUnitPlatform.class)<\/strong> hinzuf\u00fcgen. Dann laufen die Tests wie gewohnt \ud83d\ude42<\/p>\n<p>Dann auch mal gleich an der Testklasse und Testmethode eine <strong>@DisplayName(&#8222;Versions Test&#8220;)<\/strong> Beschreibung angef\u00fcgt.<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/07\/Bildschirmfoto-2017-07-21-um-08.18.10.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/07\/Bildschirmfoto-2017-07-21-um-08.18.10.png\" alt=\"\" width=\"384\" height=\"260\" class=\"aligncenter size-full wp-image-8586\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/07\/Bildschirmfoto-2017-07-21-um-08.18.10.png 384w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/07\/Bildschirmfoto-2017-07-21-um-08.18.10-300x203.png 300w\" sizes=\"auto, (max-width: 384px) 100vw, 384px\" \/><\/a><\/p>\n<p>Es wir noch ein JUnit Vintage Eintrag mehr angezeigt. Das tut aber ja nicht weh.<\/p>\n<p>So, weitere Infos auf der <a href=\"https:\/\/junit.org\/junit5\/docs\/current\/user-guide\/\" target=\"_blank\" rel=\"noopener noreferrer\">JUnit 5<\/a> Seite.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wollte mal mein REST Testprogramm auf JUnit 5 umstellen. Die neuen JUnit 5 Feature sind schon sehr interessant. Vor ein paar Tagen ist der neue M6 ver\u00f6ffentlicht worden (JUnit 5.0.0-M6 = Platform 1.0.0-M6 + Jupiter 5.0.0-M6 + Vintage 4.12.0-M6). Auch ist die Architektur nun grundlegend ge\u00e4ndert. Und evl. will man schon mal die Neuen Features &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=8577\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eRest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[220,5,1361,2953,2914,79,2658],"tags":[55,2943,2487,194,2950],"class_list":["post-8577","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-java","category-java-8","category-junit-5","category-oxygen","category-programmierung","category-test-thema","tag-junit","tag-junit-5","tag-rest","tag-test-2","tag-testserver"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/8577","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8577"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/8577\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8577"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8577"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8577"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}