{"id":13019,"date":"2019-05-05T04:40:03","date_gmt":"2019-05-05T02:40:03","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=13019"},"modified":"2019-04-15T19:40:52","modified_gmt":"2019-04-15T17:40:52","slug":"junit-5-quickie-csvsource","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=13019","title":{"rendered":"JUnit 5 Quickie: @CsvSource"},"content":{"rendered":"<p>Mit der <a href=\"https:\/\/junit.org\/junit5\/docs\/5.0.2\/api\/org\/junit\/jupiter\/params\/provider\/CsvSource.html\" rel=\"noopener noreferrer\" target=\"_blank\">@CsvSource<\/a> Annotation in JUnit 5 kann man mit Kommaseparierte Parameter leicht und \u00fcbersichtliche Tests schreiben. Die API ist aber noch im EXPERIMENTAL Status.<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/07\/Junit-5.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/07\/Junit-5.png\" alt=\"\" width=\"2732\" height=\"2048\" class=\"aligncenter size-full wp-image-8650\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/07\/Junit-5.png 2732w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/07\/Junit-5-300x225.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/07\/Junit-5-768x576.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/07\/Junit-5-1024x768.png 1024w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>Hier mal ein Beispiel. F\u00fcr jeden Kommandozeilen Parameter eine Testmethode schreiben:<br \/>\n<!--more--><\/p>\n<pre class=\"lang:default decode:true \" >\r\n@Test\r\n\tvoid testHilfe() throws Exception {\r\n\r\n\t\tString[] args = { \"-h\" };\r\n\t\tStart.main(args);\r\n\t}\r\n\r\n\t@Test\r\n\tvoid testVersion() throws Exception {\r\n\r\n\t\tString[] args = { \"-v\" };\r\n\t\tStart.main(args);\r\n\t}\r\n\r\n\t@Test\r\n\tvoid testFehler() throws Exception {\r\n\r\n\t\tString[] args = { \"-fehler\" };\r\n\t\tStart.main(args);\r\n\t}\r\n<\/pre>\n<p>Das kann leicht mit JUnit 5 \u00fcbersetzt und vereinfacht werden mit:<\/p>\n<pre class=\"lang:default decode:true \" >\r\n\r\n@ParameterizedTest(name = \"{index}. \u00dcberpr\u00fcfter Kommandozeilen Parameter: {arguments}\")\r\n@CsvSource({ \"-h\", \"-v\", \"-Kommandozeilenfehler\", \"-i\", \"-a\", \"-t\" })\r\n\tvoid kommandoZeilenTest(String kommandozeilenparameter) throws Exception {\r\n\r\n\t\tStart.main(new String[] { kommandozeilenparameter });\r\n\t}\r\n<\/pre>\n<p>Einfach die Parameter der <strong>@CsvSource<\/strong> Annotation hinzuf\u00fcgen. Die Testmethode wird dann 6 mal aufgerufen mit jeden Parameter einmal, und der Methoden Name ist auch sch\u00f6n \u00fcbersichtlich. Es k\u00f6nnen die <strong>{index}<\/strong> und <strong>{arguments}<\/strong> Parameter wie folgt verwendet werden:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/04\/Bildschirmfoto-2019-04-12-um-10.46.21.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/04\/Bildschirmfoto-2019-04-12-um-10.46.21.png\" alt=\"\" width=\"497\" height=\"282\" class=\"aligncenter size-full wp-image-13022\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/04\/Bildschirmfoto-2019-04-12-um-10.46.21.png 497w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/04\/Bildschirmfoto-2019-04-12-um-10.46.21-300x170.png 300w\" sizes=\"auto, (max-width: 497px) 100vw, 497px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit der @CsvSource Annotation in JUnit 5 kann man mit Kommaseparierte Parameter leicht und \u00fcbersichtliche Tests schreiben. Die API ist aber noch im EXPERIMENTAL Status. Hier mal ein Beispiel. F\u00fcr jeden Kommandozeilen Parameter eine Testmethode schreiben:<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[220,5,1361,2884,2953,2658],"tags":[1721,2178,2943,1709],"class_list":["post-13019","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-java","category-java-8","category-java-9","category-junit-5","category-test-thema","tag-csv","tag-java","tag-junit-5","tag-testen"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/13019","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=13019"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/13019\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13019"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13019"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}