{"id":2599,"date":"2024-05-12T12:06:00","date_gmt":"2024-05-12T10:06:00","guid":{"rendered":"https:\/\/ittester.sk\/non-classifiee\/assertion-souple-dans-testng\/"},"modified":"2024-10-22T14:05:53","modified_gmt":"2024-10-22T12:05:53","slug":"assertion-souple-dans-testng","status":"publish","type":"post","link":"https:\/\/ittester.sk\/fr\/tests-automatises\/tutoriel-testng\/assertion-souple-dans-testng\/","title":{"rendered":"Assertion souple dans TestNG"},"content":{"rendered":"\n<p>Les assertions dans nos suites de tests sont n\u00e9cessaires pour v\u00e9rifier le r\u00e9sultat r\u00e9el par rapport au r\u00e9sultat attendu. La classe Assert fournie par TestNG offre une forme d&rsquo;assertion dure dans laquelle, d\u00e8s que l&rsquo;assertion \u00e9choue, l&rsquo;ex\u00e9cution de la m\u00e9thode de test est arr\u00eat\u00e9e et la m\u00e9thode de test est marqu\u00e9e comme un \u00e9chec.<\/p>\n\n<p>Cependant, il arrive souvent que la m\u00e9thode de test doive continuer \u00e0 s&rsquo;ex\u00e9cuter apr\u00e8s l&rsquo;\u00e9chec de la premi\u00e8re d\u00e9claration d&rsquo;assertion. Une telle exigence se pr\u00e9sente lorsque nous avons plusieurs assertions dans la m\u00e9thode de test ou lorsque nous voulons ex\u00e9cuter une ligne de code suppl\u00e9mentaire apr\u00e8s l&rsquo;\u00e9nonc\u00e9 de l&rsquo;assertion. TestNG fournit la classe SoftAssert pour r\u00e9pondre \u00e0 ces cas.<\/p>\n\n<p><strong>SoftAssert softAssert = new SoftAssert() ;<\/strong><\/p>\n\n<p>Lorsque nous utilisons SoftAssert, si une assertion \u00e9choue, l&rsquo;<strong>exception d&rsquo;assertion<\/strong> n&rsquo;est pas lev\u00e9e, mais toutes les instructions sont ex\u00e9cut\u00e9es et, plus tard, le test compare le r\u00e9sultat de toutes les assertions et marque le <a href=\"https:\/\/ittester.sk\/manualne-testovanie\/test-case\/\" title=\"\">cas de test<\/a> comme r\u00e9ussi ou \u00e9chou\u00e9 sur la base du r\u00e9sultat de l&rsquo;assertion.<\/p>\n\n<p>Dans l&rsquo;extrait de code suivant, nous utilisons trois assertions dans la m\u00e9thode de test. Les deux premiers \u00e9nonc\u00e9s \u00e9chouent d\u00e9lib\u00e9r\u00e9ment, mais l&rsquo;ensemble de la m\u00e9thode de test est ex\u00e9cut\u00e9. La derni\u00e8re instruction <strong>softAssert.assertAll()<\/strong> est tr\u00e8s importante, elle compare les r\u00e9sultats de toutes les assertions et marque l&rsquo;\u00e9chec du test en cas d&rsquo;\u00e9chec.<\/p>\n\n<p>PS : Si nous n&rsquo;utilisons pas <strong>softAssert.assertAll()<\/strong>, le cas de test sera marqu\u00e9 comme r\u00e9ussi m\u00eame si l&rsquo;assertion \u00e9choue.<\/p>\n\n<h2 class=\"wp-block-heading\">Table des mati\u00e8res<\/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\">R\u00e9cup\u00e9r\u00e9 de<\/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\">Exception en cas d&rsquo;\u00e9chec<\/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>Ici, nous pouvons remarquer que la sortie de la console contient toutes les commandes d&rsquo;impression, m\u00eame si les assertions \u00e9chouent. Nous pouvons \u00e9galement voir dans les rapports d&rsquo;assertion que deux des trois assertions ont \u00e9chou\u00e9 &#8211; la premi\u00e8re assertion a \u00e9chou\u00e9, la deuxi\u00e8me a \u00e9chou\u00e9.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Les assertions dans nos suites de tests sont n\u00e9cessaires pour v\u00e9rifier le r\u00e9sultat r\u00e9el par rapport au r\u00e9sultat attendu.<\/p>\n","protected":false},"author":8,"featured_media":2600,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[46],"tags":[],"class_list":["post-2599","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutoriel-testng"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/posts\/2599","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/comments?post=2599"}],"version-history":[{"count":1,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/posts\/2599\/revisions"}],"predecessor-version":[{"id":2601,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/posts\/2599\/revisions\/2601"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/media\/2600"}],"wp:attachment":[{"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/media?parent=2599"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/categories?post=2599"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/tags?post=2599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}