<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # JUnit5 測試生命周期 > 原文: [https://howtodoinjava.com/junit5/junit-5-test-lifecycle/](https://howtodoinjava.com/junit5/junit-5-test-lifecycle/) 在 JUnit5 中,測試生命周期由 4 個主要注解驅動,即[**`@BeforeAll`**](//howtodoinjava.com/junit-5/before-all-annotation-example/), [`@BeforeEach`](//howtodoinjava.com/junit-5/before-each-annotation-example/), [`@AfterEach`](//howtodoinjava.com/junit-5/after-each-annotation-example/)和[`@AfterAll`](//howtodoinjava.com/junit-5/after-all-annotation-example/)。 同時,每個測試方法都必須標有`@Test`注解。 盡管`@Test`注解不再使用可選參數,但它幾乎沒有變化。 ## 之前和之后 在**單元測試生命周期**中,您首先需要使用一些方法來設置和拆除運行測試的環境或測試數據。 在 JUnit 中,為每個測試創建一個新的測試實例。 `@BeforeAll`和`@AfterAll`注解(按名稱清除)在整個測試執行周期中僅應調用一次。 因此,必須將它們聲明為`static`。 如果它們是具有相同注解的多個方法(例如,兩個具有`@BeforeAll`的方法),則它們的執行順序不確定。 對于每個測試實例都調用`@BeforeEach`和`@AfterEach`,因此不必是`static`。 ```java public class AppTest { @BeforeAll static void setup(){ System.out.println("@BeforeAll executed"); } @BeforeEach void setupThis(){ System.out.println("@BeforeEach executed"); } @Test void testCalcOne() { System.out.println("======TEST ONE EXECUTED======="); Assertions.assertEquals( 4 , Calculator.add(2, 2)); } @Test void testCalcTwo() { System.out.println("======TEST TWO EXECUTED======="); Assertions.assertEquals( 6 , Calculator.add(2, 4)); } @AfterEach void tearThis(){ System.out.println("@AfterEach executed"); } @AfterAll static void tear(){ System.out.println("@AfterAll executed"); } } ``` 控制臺輸出: ```java @BeforeAll executed @BeforeEach executed ======TEST ONE EXECUTED======= @AfterEach executed @BeforeEach executed ======TEST TWO EXECUTED======= @AfterEach executed @AfterAll executed ``` ## 禁用測試 要在 JUnit5 中禁用測試,您將需要使用[`@Disabled`](//howtodoinjava.com/junit-5/junit-5-disabled-test-example/)注解。 它等效于 JUnit4 的`@Ignored`注解。 `@Disabled`注解可以應用于測試類(禁用該類中的所有測試方法)或單個測試方法。 ```java @Disabled @Test void testCalcTwo() { System.out.println("======TEST TWO EXECUTED======="); Assertions.assertEquals( 6 , Calculator.add(2, 4)); } ``` ## 斷言 在任何測試方法中,我們都需要確定它是否通過失敗。 您可以使用[斷言](//howtodoinjava.com/junit-5/junit-5-assertions-examples)進行操作。 斷言有助于通過測試用例的實際輸出來驗證期望的輸出。 為簡單起見,所有 JUnit Jupiter 斷言都是[`org.junit.jupiter.Assertions`](http://junit.org/junit5/docs/current/api/org/junit/jupiter/api/Assertions.html)類中的靜態方法。 ```java void testCase() { //Test will pass Assertions.assertEquals(4, Calculator.add(2, 2)); //Test will fail Assertions.assertEquals(3, Calculator.add(2, 2), "Calculator.add(2, 2) test failed"); //Test will fail Supplier<String> messageSupplier = ()-> "Calculator.add(2, 2) test failed"; Assertions.assertEquals(3, Calculator.add(2, 2), messageSupplier); } ``` 要使測試失敗,只需使用`Assertions.fail()`方法。 ```java @Test void testCase() { Assertions.fail("not found good reason to pass"); } ``` ## 假設 [假設](//howtodoinjava.com/junit-5/junit-5-assumptions-examples)提供了靜態方法來支持基于假設的條件測試執行。 假設失敗會導致測試中止。 通常在沒有必要繼續執行給定測試方法的情況下使用假設。 在測試報告中,這些測試將被標記為通過。 假設類有兩種方法:`assumeFalse()`,`assumeTrue()`。 第三種方法`assumeThat()`處于實驗狀態,可能會在將來的版本中得到確認。 ```java @Test void testOnDev() { System.setProperty("ENV", "DEV"); Assumptions.assumeTrue("DEV".equals(System.getProperty("ENV"))); //remainder of test will proceed } @Test void testOnProd() { System.setProperty("ENV", "PROD"); Assumptions.assumeTrue("DEV".equals(System.getProperty("ENV"))); //remainder of test will be aborted } ``` **junit 測試生命周期**的所有上述注解和類。 將我的問題放在評論部分。 學習愉快! [源碼下載](https://github.com/lokeshgupta1981/Junit5Examples/tree/master/JUnit5Examples)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看