2013-03-26 49 views
0

這個問題非常具有easystest-specific(但我不知道更好的地方問)。列表或數組作爲易測試驅動測試中的參數

有沒有辦法使用Array或List類型的參數?有沒有可能是一個分隔符,可以像這樣(Excel表格)可以使用:

TestMethod的doubleList的StringList 3.5,3.4,6.7 A,B,C

(分隔字符是在這裏 ''),這樣我得到兩個參數List doublelist和List stringList。 目前,我手工做這件事:使用所有作爲字符串參數和「拆分」他們在','。然後將單個字符串轉換爲所需的類型。 易用最簡單的方法嗎?

+0

由',' - >單獨的值不起作用。easy test嘗試將3.5,2.5轉換爲一個double。但似乎該列表被支持: @Param(name =」amount 「)預期列表預期..至少對於具有一個值的單元格起作用。 – dermoritz 2013-03-26 15:20:11

回答

0

EasyTest在行的基礎上工作(根據我的知識)。 他們沒有給出任何處理對象列表的規定。 我使用相同的方式。我覺得原始類型更容易,但對象列表..?

1

您只需使用':'作爲分隔符,EasyTest將字符串分割爲一個集合。

在EASYTEST的@Param標註的Javadoc說:

「如果你想傳遞一個集合類型,然後EASYTEST框架提供的功能來實例化集合類爲你傳遞如果有合適的泛型參數可能例如,如果你有一個測試方法是這樣的:。

@Test 
public void testArrayList(@Param(name="items") ArrayList<ItemId> items){ 
    Assert.assertNotNull(items); 
    for(ItemId item : items){ 
     System.out.println("testArrayList : "+item); 
    } 
} 

那麼所有你需要做的是: 通過itemIds的列表作爲「:」在測試數據文件分隔的列表(XML,CSV ,Excel或自定義),例如:23:56:908:666

並註冊一個編輯器或轉換器將字符串數據轉換爲對象。 如果集合的泛型類型參數是標準的Java類型(Date,Character,Timestamp,Long,Interger,Float,Double等),那麼您不必做任何事情,框架將負責轉換String數據到請求的類型「