欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中用enum結合testng實現(xiàn)數(shù)據(jù)驅動的方法示例

 更新時間:2017年01月17日 11:02:07   作者:張飛_  
TestNG數(shù)據(jù)驅動提供的參數(shù)化讓我們在測試項目可以靈活根據(jù)需求建立不同的dataprovider來提供數(shù)據(jù),而真正實現(xiàn)數(shù)據(jù),頁面,測試彼此獨立而又有機結合的可能性。 下面這篇文章主要給大家介紹了Java中用enum和testng做數(shù)據(jù)驅動的方法示例,需要的朋友可以參考借鑒。

前言

數(shù)據(jù)驅動測試是相同的測試腳本使用不同的測試數(shù)據(jù)執(zhí)行,測試數(shù)據(jù)和測試行為完全分離。數(shù)據(jù)驅動是做自動化測試中很重要的一部分,數(shù)據(jù)源的方案也是百花八門了,比如利用外部文件,直接在@DataProvider中寫死等等。

我們今天介紹一下利用enum來做數(shù)據(jù)源,先來看一下enum的寫法:

public enum TestEnum {
 
 OK(200,"success"),
 FAIL(300,"fail");
 
 private int retCode;
 
 private String msg;
 
 private TestEnum(int retCode, String msg) {
 this.retCode = retCode;
 this.msg = msg;
 }
 
 public int getRetCode() {
 return retCode;
 }
 
 public void setRetCode(int retCode) {
 this.retCode = retCode;
 }
 
 public String getMsg() {
 return msg;
 }
 
 public void setMsg(String msg) {
 this.msg = msg;
 }
 
 @Override
 public String toString() {
 return retCode+" "+msg;
 }
 
 public static void main(String[] args) {
 TestEnum[] vs = TestEnum.values();
 System.out.println(vs[0].getMsg());
 System.out.println(TestEnum.OK.getRetCode());
 System.out.println(TestEnum.OK.getMsg());
 System.out.println(TestEnum.valueOf("OK").getMsg());
 }
 
}

上述代碼復制后,可直接運行!

上述代碼可理解為有兩組數(shù)據(jù),每一組里面有兩個數(shù)據(jù),一個是retCode,一個是msg。

現(xiàn)在把enum給加載到@DataProvider中去:

public class TestDataDemo {
 
 @DataProvider
 public Object[][] dataProvider(){
 TestEnum[] vs = TestEnum.values();
 Object[][] obj = new Object[vs.length][];
 for (int i = 0; i < vs.length; i++) {
  obj[i] = new Object[]{vs[i]};
 }
 return obj;
 }
 
 @Test(dataProvider="dataProvider")
 public void testDemo(TestEnum te){
 System.out.println(te.getRetCode());
 System.out.println(te.getMsg());
 } 
 
}

上述的代碼也是可以直接運行的,運行完后

結果如下:

利用上述方式最大的好處是把數(shù)據(jù)本身與持久化的對象放在一個地方了,且調用時,也很方便。

其實,利用外部文件的話,也可以數(shù)據(jù)對象持久化,只是原來的示例中我放在了一個Map中,同樣可以把Map改為一個pojo對象,調用時也會很方便。

至于哪種方式好,大家自行的去體驗,自行的去實現(xiàn)吧!

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

相關文章

  • 解決java.sql.SQLException:The?server?time?zone?value?'?D1ú±ê×?ê±??'?is?unrecognized問題

    解決java.sql.SQLException:The?server?time?zone?value?&apo

    這篇文章主要介紹了解決java.sql.SQLException:The?server?time?zone?value?'?D1ú±ê×?ê±??'?is?unrecognized問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • springboot文件上傳時maxPostSize設置大小失效問題及解決

    springboot文件上傳時maxPostSize設置大小失效問題及解決

    這篇文章主要介紹了springboot文件上傳時maxPostSize設置大小失效問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • spring boot國際化之MessageSource的使用方法

    spring boot國際化之MessageSource的使用方法

    這篇文章主要給大家介紹了spring boot國際化之MessageSource使用的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • SpringBoot?Application核心注解詳解

    SpringBoot?Application核心注解詳解

    進入到@SpringBootApplication的源碼,可以看到里面組合了三個我們感興趣的注解@ComponentScan、@EnableAutoConfiguration、@SpringBootConfiguration,我們一一分析這三個注解
    2022-10-10
  • 阿里的Easyexcel讀取Excel文件的方法(最新版本)

    阿里的Easyexcel讀取Excel文件的方法(最新版本)

    這篇文章主要介紹了阿里的Easyexcel讀取Excel文件(最新版本)的方法,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • Java正則表達式之Pattern類實例詳解

    Java正則表達式之Pattern類實例詳解

    Pattern類的作用在于編譯正則表達式后創(chuàng)建一個匹配模式,下面這篇文章主要給大家介紹了關于Java正則表達式之Pattern類的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-01-01
  • springboot如何將http轉https

    springboot如何將http轉https

    這篇文章主要介紹了springboot如何將http轉https,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • Java實現(xiàn)高并發(fā)秒殺的幾種方式

    Java實現(xiàn)高并發(fā)秒殺的幾種方式

    高并發(fā)場景在現(xiàn)場的日常工作中很常見,本文主要介紹了Java實現(xiàn)高并發(fā)秒殺的幾種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • java簡單實現(xiàn)用語音讀txt文檔方法總結

    java簡單實現(xiàn)用語音讀txt文檔方法總結

    在本篇文章里小編給大家整理了關于java簡單實現(xiàn)用語音讀txt文檔的詳細方法總結,有需要的朋友們參考下。
    2019-06-06
  • spring是如何解析xml配置文件中的占位符

    spring是如何解析xml配置文件中的占位符

    這篇文章主要介紹了spring是如何解析xml配置文件中的占位符,幫助大家更好的理解和使用spring框架,感興趣的朋友可以了解下
    2020-11-11

最新評論