<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # JUnit ErrorCollector @Rule 與示例 > 原文: [https://www.guru99.com/junit-errorcollector.html](https://www.guru99.com/junit-errorcollector.html) 在正常情況下,只要在測試執行過程中發現任何錯誤,就將停止測試,更正錯誤并重新運行測試。 但是 JUnit 的方法稍有不同。 使用 JUnit 錯誤收集器,即使在發現問題或測試失敗之后,仍然可以繼續執行測試。 錯誤收集器收集所有錯誤對象,并在測試執行結束后僅報告一次。 在本教程中,您將學習- * [JUnit 中的錯誤收集器是什么?](#1) * [jUnit 中的@Rule 是什么?](#2) * [使用 ErrorCollector](#3) 的示例 * [JUnit ErrorCollector](#4) 的好處 ## 為什么使用錯誤收集器? 編寫測試腳本時,即使由于網絡故障,斷言失敗或任何其他原因而導致任何代碼行失敗,也要執行所有測試。 在這種情況下,您仍然可以使用 JUnit 提供的稱為“錯誤收集器”的特殊功能繼續執行測試腳本。 為此,JUnit 使用 **@Rule 批注**,該批注用于創建錯誤收集器的對象。 一旦創建了錯誤收集器對象,就可以使用方法 **addError(可拋出錯誤)輕松地將所有錯誤添加到對象中。** 如您所知, **Throwable** 是 Java 中**異常**和**錯誤**類的超類。 當您以這種方式添加錯誤時,這些錯誤將記錄在 JUnit 測試結果中。 在錯誤收集器中添加所有錯誤的好處是您可以一次驗證所有錯誤。 另外,如果腳本在中間失敗,它仍然可以繼續執行 **注意**:在使用簡單的 assert 或 try / catch 塊的情況下,將無法使用錯誤收集器方法。 **示例代碼** 要了解有關 Error Collector 的更多信息,請參見下面的代碼示例,該示例演示如何創建 Error Collector 對象并在該對象中添加所有錯誤以跟蹤問題: ``` package guru99.junit; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ErrorCollector; public class ErrorCollectorExample { @Rule public ErrorCollector collector = new ErrorCollector(); @Test public void example() { collector.addError(new Throwable("There is an error in first line")); collector.addError(new Throwable("There is an error in second line")); collector.checkThat(getResults(), not(containsString("here is an error"))); // all lines of code will execute and at the end a combined failure will be logged in. } } ``` ## jUnit 中的@Rule 是什么? JUnit 通過使用 **@rule 注釋**提供了一種特殊的測試處理,即[測試用例](/test-case.html)或測試套件。 使用@rule,您可以輕松添加或重新定義測試行為。 JUnit API 提供了一些內置規則,測試人員可以使用這些規則,甚至您也可以編寫我們自己的規則。 請參閱下面的代碼行,其中顯示了如何將@rule 注釋與 Error Collector 一起使用: ``` @Rule public ErrorCollector collector= new ErrorCollector(); ``` ## 使用 ErrorCollector 的示例 為了理解錯誤收集器,讓我們創建一個類和一個規則來收集所有錯誤。 您將在此處使用 addError(throwable)添加所有錯誤。 參見下面的代碼,該代碼僅創建一條規則,該規則只不過是創建“ Error Collector 對象”。 進一步將其用于添加所有錯誤,以便最后報告問題: **ErrorCollectorExample.java** ``` package guru99.junit; import org.junit.Assert; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ErrorCollector; public class ErrorCollectorExample { @Rule public ErrorCollector collector = new ErrorCollector(); @Test public void example() { collector.addError(new Throwable("There is an error in first line")); collector.addError(new Throwable("There is an error in second line")); System.out.println("Hello"); try { Assert.assertTrue("A " == "B"); } catch (Throwable t) { collector.addError(t); } System.out.println("World!!!!"); } } ``` **TestRunner.java** 讓我們在測試運行器中添加以上測試類,并執行它以收集所有錯誤。 參見下面的代碼: ``` package guru99.junit; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(ErrorCollectorExample.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println("Result=="+result.wasSuccessful()); } } ``` **輸出:** 請參閱故障跟蹤,該跟蹤將所有錯誤集中在一個位置: [![JUnit ErrorCollector](https://img.kancloud.cn/34/0e/340e45d13456b14820e25e6748f1f127_457x632.png "JUnit ErrorCollector") ](/images/junit/052416_1156_JUnitErrorC1.png) ## JUnit ErrorCollector 的好處 您可以將 JUnit 斷言用于功能驗證或 GUI 驗證,例如 1. assertEquals(String message,預期對象,實際對象)比較兩個對象是否相等。 2. 同樣,assertTrue(Boolean condition)斷言條件為 true。 使用斷言,驗證測試變得容易。 但是一個主要問題是,即使單個斷言失敗,測試執行也會停止。 測試的連續性和恢復處理對于測試自動化的成功至關重要。 錯誤收集器是處理此類情況的最佳方法。 **摘要**: * Junit 錯誤收集器即使在發現第一個問題之后也可以使測試繼續進行,并且最終測試失敗 * 錯誤收集器收集所有錯誤對象并僅報告,畢竟測試執行 * 在錯誤收集器中添加所有錯誤的好處是您可以一次驗證所有錯誤 * 錯誤收集器僅使用 ErrorCollector.java 提供的方法 addError(throwable err)添加錯誤。
                  <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>

                              哎呀哎呀视频在线观看