{"id":1294,"date":"2024-05-12T12:06:00","date_gmt":"2024-05-12T10:06:00","guid":{"rendered":"https:\/\/ittester.sk\/automatisiertes-testen\/soft-assertion-testng\/"},"modified":"2024-07-11T09:43:31","modified_gmt":"2024-07-11T07:43:31","slug":"soft-assertion-testng","status":"publish","type":"post","link":"https:\/\/ittester.sk\/de\/automatisiertes-testen\/testng-anleitung\/soft-assertion-testng\/","title":{"rendered":"Weiche Assertion in TestNG"},"content":{"rendered":"\n<p>Die Assertions in unseren Testsuiten sind notwendig, um das tats\u00e4chliche Ergebnis mit dem erwarteten Ergebnis zu verifizieren. Die von TestNG bereitgestellte Klasse Assert bietet eine Form der harten Assertion, bei der, sobald die Assertion fehlschl\u00e4gt, die Ausf\u00fchrung der Testmethode angehalten und die Testmethode als Fehlschlag markiert wird.<\/p>\n\n<p>In vielen F\u00e4llen kann es jedoch erforderlich sein, dass die Testmethode weiter ausgef\u00fchrt wird, nachdem die erste Assertion-Anweisung fehlgeschlagen ist. Eine solche Anforderung ergibt sich, wenn wir mehrere Assertions in der Testmethode haben oder wenn wir eine zus\u00e4tzliche Codezeile nach der Assertion-Anweisung ausf\u00fchren m\u00f6chten. TestNG bietet die SoftAssert-Klasse, um diese F\u00e4lle zu l\u00f6sen.<\/p>\n\n<p><strong>SoftAssert softAssert = new SoftAssert();<\/strong><\/p>\n\n<p>Wenn wir SoftAssert verwenden, wird, wenn eine Assertion fehlschl\u00e4gt, keine <strong>assertionException<\/strong> ausgel\u00f6st, sondern alle Anweisungen werden ausgef\u00fchrt und sp\u00e4ter vergleicht der Test das Ergebnis aller Assertions und markiert den <a href=\"https:\/\/ittester.sk\/de\/manuelles-testen\/testfall\/\" title=\"\">Testfall<\/a> als bestanden oder fehlgeschlagen, basierend auf dem Ergebnis der Assertion.<\/p>\n\n<p>In dem folgenden Codeschnipsel verwenden wir drei Assertions innerhalb der Testmethode. Die ersten beiden Anweisungen schlagen absichtlich fehl, dennoch wird die gesamte Testmethode durchgef\u00fchrt. Die letzte Anweisung <strong>softAssert.assertAll()<\/strong> ist sehr wichtig. Sie vergleicht die Ergebnisse aller Assertions und kennzeichnet den Test als fehlgeschlagen, falls ein Fehler auftritt.<\/p>\n\n<p>PS: Wenn wir <strong>softAssert.assertAll()<\/strong> nicht verwenden, wird der Testfall als erfolgreich markiert, auch wenn die Assertion fehlschl\u00e4gt.<\/p>\n\n<h2 class=\"wp-block-heading\">Inhalts\u00fcbersicht<\/h2>\n<div class=\"wp-block-aioseo-table-of-contents\"><ul><li><a class=\"aioseo-toc-item\" href=\"#aioseo-vystup\">V\u00fdstup<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-vynimka-pri-zlyhani\">V\u00fdnimka pri zlyhan\u00ed<\/a><\/li><\/ul><\/div>\n<pre class=\"wp-block-code\"><code>@Test\npublic void softAssertionTest(){\n   \n   \/\/Creating softAssert object\n   SoftAssert softAssert = new SoftAssert();\n   \n   \/\/Assertion failing\n   softAssert.fail(\"Failing first assertion\");\n   System.out.println(\"Failing 1\");\n   \n   \/\/Assertion failing\n   softAssert.fail(\"Failing second assertion\");\n   System.out.println(\"Failing 2\");\n   \/\/Assertion passing\n   softAssert.assertEquals(1, 1, \"Passing third assertion\");\n   System.out.println(\"Passing 3\");\n   \/\/Collates the assertion results and marks test as pass or fail\n   softAssert.assertAll();\n}<\/code><\/pre>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-vystup\">Abgerufen von<\/h2>\n\n<pre class=\"wp-block-code\"><code>Failing 1\nFailing 2\nPassing 3<\/code><\/pre>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-vynimka-pri-zlyhani\">Ausnahme bei Misserfolg<\/h2>\n\n<pre class=\"wp-block-code\"><code>FAILED: softAssertionTest\njava.lang.AssertionError: The following asserts failed:\n Failing first assertion,\n Failing second assertion\n at org.testng.asserts.SoftAssert.assertAll(SoftAssert.java:43)\n.....<\/code><\/pre>\n\n<p>Hier k\u00f6nnen wir feststellen, dass die Konsolenausgabe alle Druckbefehle enth\u00e4lt, auch wenn die Assertions fehlschlagen. Aus den Assertion Reports k\u00f6nnen wir auch ersehen, dass zwei der drei Assertions fehlgeschlagen sind &#8211; Failing first assertion, Failing second assertion.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Assertions in unseren Testsuiten sind notwendig, um das tats\u00e4chliche Ergebnis mit dem erwarteten Ergebnis zu verifizieren.<\/p>\n","protected":false},"author":8,"featured_media":1588,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[25],"tags":[],"class_list":["post-1294","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-testng-anleitung"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/posts\/1294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/comments?post=1294"}],"version-history":[{"count":2,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/posts\/1294\/revisions"}],"predecessor-version":[{"id":1590,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/posts\/1294\/revisions\/1590"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/media\/1588"}],"wp:attachment":[{"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/media?parent=1294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/categories?post=1294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/tags?post=1294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}