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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # TestNG `@DataProvider` – 測試參數示例 > 原文: [https://howtodoinjava.com/testng/testng-dataprovider/](https://howtodoinjava.com/testng/testng-dataprovider/) TestNG 提供的重要功能是 **testng `DataProvider`**功能。 它可以幫助您編寫**數據驅動的測試**,這實際上意味著同一測試方法可以使用不同的數據集多次運行。 請注意,除了從[`testng.xml`](https://howtodoinjava.com/testng/testng-parameters/)傳遞參數之外,`@DataProvider`是向測試方法傳遞參數的第二種方法。 它有助于為測試方法提供復雜的參數,因為不可能從 XML 做到這一點。 要在測試中使用`DataProvider`功能,您必須聲明一個由`@DataProvider`注解的方法,然后在測試方法中使用該方法,并在測試方法中使用`@Test`注解。 ## 1\. TestNG 同一類中的`@DataProvider`和`@Test` 下面的測試類包含一個測試方法,該方法采用一個參數作為輸入,并在執行時將其打印到控制臺。 通過使用 TestNG 的`@DataProvider`注解,在同一類中也可以使用`DataProvider`方法。 使用`@DataProvider`注解的`name`屬性提及所述`DataProvider`方法的名稱。 `DataProvider`返回一個具有兩個數據集的`Object`類雙數組,即“數據一”和“數據二”。 ```java package com.howtodoinjava.test; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; public class SameClassDataProvider { @DataProvider(name = "data-provider") public Object[][] dataProviderMethod() { return new Object[][] { { "data one" }, { "data two" } }; } @Test(dataProvider = "data-provider") public void testMethod(String data) { System.out.println("Data is: " + data); } } ``` 現在運行以上測試。 以上測試運行的輸出如下: ```java Data is: data one Data is: data two PASSED: testMethod("data one") PASSED: testMethod("data two") ``` 從上面的測試結果可以看出,該類中的相應測試方法已執行了兩次。 測試方法的執行取決于`DataProvider`方法傳遞的數據集的數量,在這種情況下,由于`DataProvider`返回了兩組不同的數據,因此測試方法執行了兩次。 `@DataProvider`方法必須以`Object`類的雙數組(`Object[][]`)形式返回數據。 第一個數組代表一個數據集,其中第二個數組包含參數值。 ## 2\. TestNG 不同類中的`@DataProvider`和`@Test` 要了解這一點,請添加兩個名稱分別為`DataProviderClass`和`TestClass`的類,如下所示。 #### 2.1\. `DataProvider.java` ```java import org.testng.annotations.DataProvider; public class DataProviderClass { @DataProvider(name = "data-provider") public static Object[][] dataProviderMethod() { return new Object[][] { { "data one" }, { "data two" } }; } } ``` #### 2.2\. `TestClass.java` ```java import org.testng.annotations.Test; public class TestClass { @Test(dataProvider = "data-provider", dataProviderClass = DataProviderClass.class) public void testMethod(String data) { System.out.println("Data is: " + data); } } ``` #### 2.3 演示 現在運行以上測試。 以上測試運行的輸出如下: ```java Data is: data one Data is: data two PASSED: testMethod("data one") PASSED: testMethod("data two") ``` 從上面的測試結果中可以看到,根據`DataProvider`方法傳遞給它的數據,該測試方法已執行兩次。 在這種情況下,`DataProvider`方法位于另一個類中。 在這種情況下,必須將`dataProviderMethod()`聲明為靜態,以便測試方法可以使用另一類中的`dataProviderMethod()`來提供數據。 學習愉快!
                  <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>

                              哎呀哎呀视频在线观看