成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

測試驅動技術(TDD)系列之2:詳解TestNG參數化

開發 前端
本篇文章只重點講解TestNG參數化相關知識,

[[376877]]

 上一篇文章介紹了測試驅動的相關概念,并以junit4為例,帶大家了解如何在測試框架中實現測試驅動。詳情:

測試驅動技術系列之1:一文帶你上手測試數據驅動

大家會發現Junit4在同一個測試類中實現多組數據的數據驅動,不是很方便,需要我們自己解決!我也說過在TestNG中這個問題很容易搞定!給自己挖了個坑!自己挖的坑總要填上,那么今天就給大家講解一下數據驅動在TestNG中的應用。本篇文章只重點講解TestNG參數化相關知識,關于TestNG的環境配置以及基礎使用不在本文的討論范圍!TestNG中使用DataProvider實現參數化功能,在執行用例的時候dataProvider迭代中的每組數據都是作為一個用例執行。

一組參數化數據

定義參數化數據,代碼如下:

  1. @DataProvider 
  2.       public Object[][] dp1() { 
  3.         return new Object[][] { 
  4.           new Object[] { 1, 1,0 }, 
  5.           new Object[] { 2, 1,1 }, 
  6.           new Object[] { 2, 1,2 }, 
  7.         }; 
  8.       } 

 用例中使用參數化數據(dp1定義的),代碼如下:

  1. @Test(dataProvider = "dp1"
  2.   public void f1(Integer n1, Integer n2, Integer n3) { 
  3.      Integer result=n2+n3; 
  4.      assertEquals(n1,result); 
  5.   } 

 多組參數化數據

在一個測試類中,可以定義多組參數化數據(參數化數據個數不同,dp1三個,dp2二個),代碼如下:

  1. @DataProvider 
  2.      public Object[][] dp2() { 
  3.        return new Object[][] { 
  4.          new Object[] { 1, 1}, 
  5.          new Object[] { 2, 1}, 
  6.          new Object[] { 2, 1}, 
  7.        }; 
  8.      } 

 用例中使用參數化數據(dp2定義的),代碼如下:

  1. @Test(dataProvider = "dp2"
  2.   public void f2(Integer n1, Integer n2) { 
  3.        assertEquals(n1,n2); 
  4.   } 

 測試方法通過DataProvider引用

我們可以自定義一些方法,對外部文件進行讀取,然后把讀取的數據作為參數在TestNG中引用,具體方法如下:

寫一個讀取各類文件的方法(txt、excel、db)具體代碼就不給出了,但是一定注意方法的返回值必須是Object[][](關于操控excel的知識會在后面的文章中介紹)

  1. public Object[][] readfile(String p_file){ 
  2.          return  new Object[][] {{ 1, 1},{ 1, 2}}; 
  3.      } 

 在@DataProvider修飾的方法中調用該方法(也可以直接實現)

  1. @DataProvider(name = "dp_func"
  2.        public Object[][] testData(Method testMethod) { 
  3.          return readfile(""); 
  4.        } 

 用例中使用參數化數據(dp_func),代碼如下: 

  1. @Test(dataProvider = "dp_func"
  2.   public void f3(Integer n1, Integer n2) { 
  3.         assertEquals(n1,n2); 
  4.   } 

 完整代碼 

  1. import org.testng.annotations.DataProvider; 
  2. import org.testng.annotations.Test; 
  3. import static org.testng.Assert.assertEquals; 
  4. import java.lang.reflect.Method; 
  5. public class NewTest { 
  6.  
  7.       @DataProvider 
  8.       public Object[][] dp1() { 
  9.         return new Object[][] { 
  10.           new Object[] { 1, 1,0 }, 
  11.           new Object[] { 2, 1,1 }, 
  12.           new Object[] { 2, 1,2 }, 
  13.         }; 
  14.       } 
  15.  
  16.       @DataProvider 
  17.       public Object[][] dp2() { 
  18.  
  19.         return new Object[][] { 
  20.           new Object[] { 1, 1}, 
  21.           new Object[] { 2, 1}, 
  22.           new Object[] { 2, 1}, 
  23.         }; 
  24.       } 
  25.  
  26.       @DataProvider(name = "dp_func"
  27.         public Object[][] testData(Method testMethod) { 
  28.           return readfile(""); 
  29.         } 
  30.  
  31.      //讀取各類文件,返回值是Object[][] 
  32.  
  33.       public Object[][] readfile(String p_file){ 
  34.           return  new Object[][] {{ 1, 1},{ 1, 2}}; 
  35.       } 
  36.  
  37.   @Test(dataProvider = "dp1"
  38.   public void f1(Integer n1, Integer n2, Integer n3) { 
  39.       Integer result=n2+n3; 
  40.       assertEquals(n1,result); 
  41.   } 
  42.  
  43.   @Test(dataProvider = "dp2"
  44.   public void f2(Integer n1, Integer n2) { 
  45.      assertEquals(n1,n2); 
  46.   } 
  47.  
  48.   @Test(dataProvider = "dp_func"
  49.   public void f3(Integer n1, Integer n2) { 
  50.       assertEquals(n1,n2); 
  51.   } 

 運行測試用例,可以看到用例成功地進行了參數化,f1執行了3次,f2執行了3次,f3執行了2次,如下圖所示:

測試驅動技術(TDD)系列之2:詳解TestNG參數化

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2021-02-21 08:53:19

測試驅動技術數據驅動pytest

2021-02-04 07:30:14

測試驅動技術excel讀取數據

2021-02-04 07:12:15

測試excelapi

2009-10-10 10:55:48

TDD技術

2022-06-17 09:30:00

參數化測試TestNG測試

2014-04-09 11:13:37

測試驅動開發

2023-09-11 11:05:49

軟件開發TDD

2023-12-20 07:12:00

PowerShellCmdletNamed類型

2021-07-02 17:22:50

前端TDDBDD

2010-07-21 16:54:12

EPON

2023-10-09 07:29:35

算法音樂驅動數字人

2021-05-18 05:59:45

自動化測試TestNgGroup

2021-05-05 11:38:40

TestNGPowerMock單元測試

2019-04-16 16:23:29

GPU虛擬化CPU

2009-12-15 09:36:32

Visual Stud

2018-06-15 15:50:34

技術

2009-02-12 09:55:28

2025-02-17 08:00:00

DeepSeek模型AI

2025-02-13 11:00:30

2013-01-06 12:23:59

Android開發SQLite數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日本韩国一区二区 | 操操操av | 免费看黄视频网站 | 365夜爽爽欧美性午夜免费视频 | 天天操,夜夜爽 | 91精品国产色综合久久不卡98口 | 国产一级视频在线观看 | 久久久久久久久久爱 | 国产一区日韩在线 | 国产成人免费视频 | 久久精品亚洲一区二区三区浴池 | 国产精品免费一区二区三区四区 | 国产精品成人一区二区三区夜夜夜 | 中文字幕乱码一区二区三区 | 先锋资源在线 | 日本精品久久久一区二区三区 | 日韩中文字幕 | 国产成人精品综合 | 一区二区在线免费观看 | 在线日韩欧美 | 亚洲淫视频 | 亚洲另类自拍 | 99精彩视频 | 伊人天堂网 | 亚洲成人精品久久 | 精品国产乱码久久久久久蜜柚 | 九色在线视频 | 国产国产精品久久久久 | 国产一区免费视频 | 亚洲精品久久久9婷婷中文字幕 | 欧美日韩高清一区 | 91极品视频| 国产精品久久久久久久久久三级 | 操人网站 | 午夜三区 | 国产成人亚洲精品 | 欧美一级视频免费看 | 国产精品久久在线观看 | 久久一区二区视频 | 少妇久久久久 | 成人欧美一区二区三区在线播放 |