簡體   English   中英

BeforeMethod 功能的數據提供者

[英]Data Providers for BeforeMethod capabilities

有沒有辦法為BeforeMethod function 使用數據提供程序? 我想對許多不同的設備運行並行測試,所以我想使用參數來設置功能。 但我想要一種不同於使用testng.xml的方式。

您可以通過Object[]參數在BeforeMethod中獲取數據提供者傳遞給測試的數據。

@BeforeMethod
public void beforeMethod(Object[] data) {
    //.......
}

假設以下代碼:

@Test(dataProvider = "dataOne")
public void testMethodOne(String one, int two) {
}

@Test(dataProvider = "dataTwo")
public void testMethodTwo(int one) {
}

@DataProvider
public Object[][] dataOne() {
    return new Object[][]{ {"a", 1} };
}

@DataProvider
public Object[][] dataTwo() {
    return new Object[][]{ {1} };
}

為了在數據提供者到達測試方法之前獲取數據提供者傳遞的數據,您定義了一個 before 方法,如下所示。 我也添加了Method m參數。 這將有助於識別正在運行的測試用例。 Object[] data包含數據提供者傳遞的數據。 如果你添加了這個參數,那么 testNG 會自動將數據傳遞給 before 方法。

@BeforeMethod
public void beforeMethod(Method m, Object[] data) {
    if(m.getName().equals("testMethodOne")) {
        String x = (String) data[0];
        int y = (int) data[1];
    } else if(m.getName().equals("testMethodTwo")) {
        int x = (int) data[0];
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM