{"id":83803,"date":"2020-09-28T07:15:05","date_gmt":"2020-09-28T07:15:05","guid":{"rendered":"https:\/\/www.baeldung.com\/?p=87771"},"modified":"2020-09-28T07:15:05","modified_gmt":"2020-09-28T07:15:05","slug":"beforeall-and-afterall-in-non-static-methods","status":"publish","type":"post","link":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/2020\/09\/28\/beforeall-and-afterall-in-non-static-methods\/","title":{"rendered":"@BeforeAll and @AfterAll in Non-Static Methods"},"content":{"rendered":"<p class=\"syndicated-attribution\"><meta name= \\\"keywords \\\" content= \\\"\u96fb\u5b50\u8a08\u7b97\u6a5f, \u6559\u80b2, IT \u96fb\u8166\u73ed,\u96fb\u8166\u88dc\u7fd2\uff0c \u96fb\u8166\u73ed\uff0c \u5bb6\u6559\uff0c \u79c1\u4eba\u8001\u5e2b\uff0c \u8cc7\u8a0a\u6280\u8853\uff0c \u7a0b\u5e8f\u8a2d\u8a08\uff0c \u96fb\u5b50\u8a08\u7b97\u6a5f\uff0c \u904a\u6232\uff0c \u860b\u679c\uff0c \u96fb\u5f71\uff0c \u8a08\u7b97\u6a5f\uff0c\u7de8\u78bc\uff0c Java\uff0c C\/C++\uff0c JavaScript\uff0c PHP\uff0c HTML\uff0c CSS\uff0c MySQL\uff0c mobile\uff0c Android\uff0c \u52d5\u6f2b\uff0c Python\uff0c teacher\uff0c \u88dc\u7fd2\uff0c \u96fb\u8166\u88dc\u7fd2 \u8cc7\u8a0a, \u7535\u5b50\u8ba1\u7b97\u673a, IT ,Game, apple, movie, Computer,student,Java,\u6559\u80b2, ,\u5b66\u751f, \u5b66\u4e60, learn, \u6559\u5b66,  Android, apple,anime, animation, \u4fe1\u606f\u6280\u672f, \u7a0b\u5e8f\u8bbe\u8ba1, \u79fb\u52a8\u7535\u8bdd, \u8cc7\u8a0a\u79d1\u6280,Game, Jeu, Juego,Call Of Duty ,\u4f7f\u547d\u53ec\u559a , \u6e38\u620f, \u7535\u5b50\u6e38\u620f,, \u591a\u4eba\u7535\u5b50\u6e38\u620f, \u7f51\u7edc\u6e38\u620f\uff0conline\uff0conline game, \u624b\u673a\u6e38\u620f, mobile \\\"><\/p>\n<h2 data-id=\"overview\">1. Overview<\/h2>\n<div class=\"bd-anchor\" id=\"overview\"><\/div>\n<p class=\"c-mrkdwn__pre\" data-stringify-type=\"pre\">In this short tutorial, we&#8217;re going to implement non-static methods with <em>@BeforeAll<\/em> and <em>@AfterAll<\/em> annotations available in <em><a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/junit-5\">Junit5<\/a><\/em>.<\/p>\n<h2 data-id=\"beforeall-and-afterall-in-non-static-methods\">2. <em>@BeforeAll<\/em> and <em>@AfterAll<\/em> in Non-Static Methods<\/h2>\n<div class=\"bd-anchor\" id=\"beforeall-and-afterall-in-non-static-methods\"><\/div>\n<p class=\"c-mrkdwn__pre\" data-stringify-type=\"pre\">While unit testing, we may occasionally want to use <em>@BeforeAll<\/em> and <em>@AfterAll<\/em> in non-static setup and tear-down methods \u2014 for instance, in a @<em>Nested<\/em> test class or as interface default methods.<\/p>\n<p class=\"c-mrkdwn__pre\" data-stringify-type=\"pre\">Let&#8217;s create a test class with the <em>@BeforeAll<\/em> and <em>@AfterAll<\/em> methods as non-static:<\/p>\n<pre><code class=\"language-java\">public class BeforeAndAfterAnnotationsUnitTest {\r\n    String input;\r\n    Long result;\r\n    @BeforeAll\r\n    public void setup() {\r\n        input = \"77\";\r\n    }\r\n    @AfterAll\r\n    public void teardown() {\r\n        input = null;\r\n        result = null;\r\n    }\r\n    @Test\r\n    public void whenConvertStringToLong_thenResultShouldBeLong() {\r\n        result = Long.valueOf(input);\r\n        Assertions.assertEquals(77l, result);\r\n    }\u200b_\r\n}<\/code><\/pre>\n<p class=\"c-mrkdwn__pre\" data-stringify-type=\"pre\">If we run the above code, it will throw an exception:<\/p>\n<pre><code class=\"language-java\">org.junit.platform.commons.JUnitException:  ...<\/code><\/pre>\n<p>Let&#8217;s now see how we can avoid this situation.<\/p>\n<h2 data-id=\"the-testinstance-annotation\">3. The <em>@TestInstance<\/em> Annotation<\/h2>\n<div class=\"bd-anchor\" id=\"the-testinstance-annotation\"><\/div>\n<p>We&#8217;ll use the <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/junit-testinstance-annotation\"><em>@TestInstance<\/em><\/a> annotation to configure the lifecycle of a test. If we don&#8217;t declare it on our test class, the lifecycle mode will be <em>PER_METHOD<\/em> by default<em>.<\/em> So, <strong>to prevent our test class from throwing a <em>JUnitException,<\/em> we need to annotate it with <em>@TestInstance(TestInstance.<\/em><\/strong><em><strong>Lifecycle.PER_CLASS)<\/strong>.<\/em><\/p>\n<p>Let&#8217;s redo our test class and add the <em>@TestInstance(TestInstance.<\/em><em>Lifecycle.PER_CLASS):<\/em><\/p>\n<pre><code class=\"language-java\">@TestInstance(TestInstance.Lifecycle.PER_CLASS)\r\npublic class BeforeAndAfterAnnotationsUnitTest {\r\n    String input;\r\n    Long result;\r\n    @BeforeAll\r\n    public void setup() {\r\n        input = \"77\";\r\n    }\r\n    @AfterAll\r\n    public void teardown() {\r\n        input = null;\r\n        result = null;\r\n    }\r\n    @Test\r\n    public void whenConvertStringToLong_thenResultShouldBeLong() {\r\n        result = Long.valueOf(input);\r\n        Assertions.assertEquals(77l, result);\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In this case, our test runs successfully.<\/p>\n<h2 data-id=\"conclusion\"><code class=\"language-java\"><\/code>4. Conclusion<\/h2>\n<div class=\"bd-anchor\" id=\"conclusion\"><\/div>\n<p class=\"c-mrkdwn__pre\" data-stringify-type=\"pre\">In this short article, we&#8217;ve learned how to use <em>@BeforeAll<\/em> and <em>@AfterAll<\/em> in non-static methods. First, we started with a simple non-static example to show what happens if we don&#8217;t include the <em>@TestInstance<\/em> annotation. Then, we annotated our test with <em>@TestInstance(TestInstance.Lifecycle.PER_CLASS)<\/em>\u00a0to prevent throwing a <i data-stringify-type=\"italic\">JUnitException<\/i>.<\/p>\n<p>As always, the implementation of all these examples is <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/github.com\/eugenp\/tutorials\/tree\/master\/testing-modules\/junit-5\">over on GitHub<\/a>.<\/p>\n<p>The post <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/java-beforeall-afterall-non-static\/\" >@BeforeAll and @AfterAll in Non-Static Methods<\/a> first appeared on <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/\" >Baeldung<\/a>.<\/p>\n<p><Img align=\"left\" border=\"0\" height=\"1\" width=\"1\" alt=\"\" style=\"border:0;float:left;margin:0;padding:0;width:1px!important;height:1px!important;\" hspace=\"0\" src=\"https:\/\/feeds.feedblitz.com\/~\/i\/636050054\/0\/baeldung\"><\/p>\n<div style=\"clear:both;padding-top:0.2em;\"><a title=\"Like on Facebook\" href=\"https:\/\/feeds.feedblitz.com\/_\/28\/636050054\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/fblike20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Share on Google+\" href=\"https:\/\/feeds.feedblitz.com\/_\/30\/636050054\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/googleplus20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Pin it!\" href=\"https:\/\/feeds.feedblitz.com\/_\/29\/636050054\/baeldung,\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/pinterest20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Tweet This\" href=\"https:\/\/feeds.feedblitz.com\/_\/24\/636050054\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/twitter20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Subscribe by email\" href=\"https:\/\/feeds.feedblitz.com\/_\/19\/636050054\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/email20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Subscribe by RSS\" href=\"https:\/\/feeds.feedblitz.com\/_\/20\/636050054\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/rss20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a rel=\"NOFOLLOW\" title=\"View Comments\" href=\"https:\/\/www.baeldung.com\/java-beforeall-afterall-non-static#respond\"><img decoding=\"async\" height=\"20\" style=\"border:0;margin:0;padding:0;\" src=\"https:\/\/assets.feedblitz.com\/i\/comments20.png\"><\/a>&#160;<a title=\"Follow Comments via RSS\" href=\"https:\/\/www.baeldung.com\/java-beforeall-afterall-non-static\/feed\/\"><img decoding=\"async\" height=\"20\" style=\"border:0;margin:0;padding:0;\" src=\"https:\/\/assets.feedblitz.com\/i\/commentsrss20.png\"><\/a>&#160;<\/div>\n\n<p class=\"syndicated-attribution\"><figure class= \\\"wp-block-image alignnone \\\"><img src= \\\"http:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-content\/uploads\/2016\/05\/logo2-2.png\\\" alt=\\\"IT\u96fb\u8166\u88dc\u7fd2 java\u88dc\u7fd2 \u70ba\u5927\u5bb6\u914d\u5c0d\u96fb\u8166\u88dc\u7fd2,IT freelance, \u79c1\u4eba\u8001\u5e2b, PHP\u88dc\u7fd2,CSS\u88dc\u7fd2,XML,Java\u88dc\u7fd2,MySQL\u88dc\u7fd2,graphic design\u88dc\u7fd2,\u4e2d\u5c0f\u5b78ICT\u88dc\u7fd2,\u4e00\u5c0d\u4e00\u79c1\u4eba\u88dc\u7fd2\u548cFreelance\u81ea\u7531\u5de5\u4f5c\u914d\u5c0d\u3002\\\"\/><figcaption>\u7acb\u523b\u8a3b\u518a\u53ca\u5831\u540d\u96fb\u8166\u88dc\u7fd2\u8ab2\u7a0b\u5427!<\/figcaption><\/figure>\r\n<\/br>Find A Teacher Form:\r\n<\/br>https:\/\/docs.google.com\/forms\/d\/1vREBnX5n262umf4wU5U2pyTwvk9O-JrAgblA-wH9GFQ\/viewform?edit_requested=true#responses\r\n<\/br><\/br>Email:\r\n<\/br>public1989two@gmail.com<br><br><br><br><br><br><br>\r\n<a href=www.itsec.hk style=color:#FFFFFF;>www.itsec.hk<\/a><br>\r\n<a href=\\\"www.itsec.vip\\\" style=color:#FFFFFF;>www.itsec.vip<\/a><br>\r\n<a href=\\\"www.itseceu.uk\\\" style=color:#FFFFFF;>www.itseceu.uk<\/a><br><\/p>","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>While unit testing, we may occasionally want to use @BeforeAll and @AfterAll in non-static setup and tear-down methods. Let&#8217;s see how we can do it.<\/p>\n<p>The post <a rel=\"NOFOLLOW noopener noreferrer\" href=\"https:\/\/feeds.feedblitz.com\/~\/636050054\/0\/baeldung~BeforeAll-and-AfterAll-in-NonStatic-Methods\/\" target=\"_blank\">@BeforeAll and @AfterAll in Non-Static Methods<\/a> first appeared on <a rel=\"NOFOLLOW noopener noreferrer\" href=\"https:\/\/www.baeldung.com\/\" target=\"_blank\">Baeldung<\/a>.<\/p>\n<div><a title=\"Like on Facebook\" href=\"https:\/\/feeds.feedblitz.com\/_\/28\/636050054\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/fblike20.png\"><\/a>&nbsp;<a title=\"Share on Google+\" href=\"https:\/\/feeds.feedblitz.com\/_\/30\/636050054\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/googleplus20.png\"><\/a>&nbsp;<a title=\"Pin it!\" href=\"https:\/\/feeds.feedblitz.com\/_\/29\/636050054\/baeldung,\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/pinterest20.png\"><\/a>&nbsp;<a title=\"Tweet This\" href=\"https:\/\/feeds.feedblitz.com\/_\/24\/636050054\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/twitter20.png\"><\/a>&nbsp;<a title=\"Subscribe by email\" href=\"https:\/\/feeds.feedblitz.com\/_\/19\/636050054\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/email20.png\"><\/a>&nbsp;<a title=\"Subscribe by RSS\" href=\"https:\/\/feeds.feedblitz.com\/_\/20\/636050054\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/rss20.png\"><\/a>&nbsp;<a rel=\"NOFOLLOW\" title=\"View Comments\" href=\"https:\/\/www.baeldung.com\/java-beforeall-afterall-non-static#respond\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/comments20.png\"><\/a>&nbsp;<a title=\"Follow Comments via RSS\" href=\"https:\/\/www.baeldung.com\/java-beforeall-afterall-non-static\/feed\/\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/commentsrss20.png\"><\/a>&nbsp;<\/div>\n<\/div>","protected":false},"author":214,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"slim_seo":{"title":"@BeforeAll and @AfterAll in Non-Static Methods - ITTeacherITFreelance.hk","description":"While unit testing, we may occasionally want to use @BeforeAll and @AfterAll in non-static setup and tear-down methods. Let's see how we can do it. The post @Be"},"footnotes":""},"categories":[6],"tags":[5478],"_links":{"self":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/83803"}],"collection":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/214"}],"replies":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=83803"}],"version-history":[{"count":4,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/83803\/revisions"}],"predecessor-version":[{"id":85410,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/83803\/revisions\/85410"}],"wp:attachment":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=83803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=83803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=83803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}