簡體   English   中英

將字符串值列表傳遞給參數化的JUnit測試

[英]Pass a list of string values to a parameterized JUnit test

我正在嘗試將屬性值的字符串值的集合傳遞給參數化的JUnit測試。 Properties.values()返回Collection,而JUnit要求在Collection結構中傳遞參數。

這是否意味着我必須將Collection<Object> to Collection<Object[]>轉換Collection<Object> to Collection<Object[]> ,其中每個數組實際上都是單個項目?

我嘗試了這個:

Arrays.asList(new Object[][] {{theProperties.values()}});

但這會將所有值放到一個對象中,並且不會像我期望的那樣創建一個集合。 有人可以幫忙嗎?

即使每個測試只有一個參數,看起來參數化的JUnit測試也需要一個Collection。

將集合轉換為集合:

使用Java 8:

Collection<String> c = Arrays.asList("a", "b");
Collection<Object[]> co = c.stream()
                            .map(ele -> new Object[]{ele})
                            .collect(Collectors.toList());

使用Java 7或更低版​​本:

Collection<String> coll = Arrays.asList("a", "b");
Collection<Object[]> params = new ArrayList<Object[]>();
for (String s : coll) {
    params.add(new Object[] { s });
}

對於Java 7或更低版​​本,您可以:

暫無
暫無

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

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