[英]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.