2014-11-14 27 views
1

我想用@DataProvider標註爲我的測試,如下面的例子:如何對數據提供者測試進行動態描述?

@DataProvider(name="testdata") 
public Object[][] testData(){ 
    return new Object[][]{ 
     {"http://www.google.com", "Google"}, 
     {"http://twitter.com", "Twitter"} 
    }; 
    } 

    @Test(dataProvider = "testdata") 
    public void test(String url, String title) { 
    driver.get(url); 
    Assert.assertTrue(driver.getTitle().contains(title)); 
    } 

在上面的例子裏,我們兩個測試用例與不同的目的,因此我希望能有不同的描述。

但是,如果我使用@Test(dataProvider = "testdata", description = "some description"),對於這兩個測試,我將有相同的描述。但是如果我想對每個測試都有不同的描述,是否有任何方法使描述具有動態性並根據測試進行描述?

回答

0
@DataProvider(name="testdata") 
public Object[][] testData(){ 
    return new Object[][]{ 
     {"http://www.google.com", "Google", "description1"}, 
     {"http://twitter.com", "Twitter", "description2"} 
    }; 
    } 

    @Test(dataProvider = "testdata") 
    public void test(String url, String title, Spring description) { 
    driver.get(url); 
    Assert.assertTrue(driver.getTitle().contains(title), description); 
    } 

如果你正在這樣做,每個測試用例(作爲參數輸出的一部分)都會向控制檯寫入描述。如果其中一個斷言失敗,你也會知道哪個描述失敗了。 我使用類似的技術來識別測試用例,當參數不是自描述性的,並且有很多測試用例。