2010-06-03 29 views
11

我已經開始使用新的(ish)JUnit Theories功能進行參數化測試。如果你的理論是成立了以,例如,Integer說法,Theories測試運行拿起任何Integer小號標有@DataPointJUnit理論:爲什麼我不能使用Lists(而不是數組)作爲DataPoints?

@DataPoint 
public static Integer number = 0; 

以及任何Integer S IN陣列:

@DataPoints 
public static Integer[] numbers = {1, 2, 3}; 

甚至方法返回數組,如:

@DataPoints 
public static Integer[] moreNumbers() { return new Integer[] {4, 5, 6}; }; 

但不是在List s。以下不工作:

@DataPoints 
public static List<Integer> numberList = Arrays.asList(7, 8, 9); 

編輯:它看起來像其他集合也不支持,因爲這是行不通的。

@DataPoints 
public static Collection<Integer> numberList = new HashSet<Integer>() {{ 
    add(7); 
    add(8); 
    add(9); 
}}; 

上午我做錯了什麼,或者說List S,Set S等還真不行?是否有意識的設計選擇不允許使用Collection作爲數據點,還是僅僅是一個尚未實現的功能?是否有計劃在未來版本的JUnit中實現它?

(我目前使用的版本4.8.1,而最新的版本是4.8.2,但it looks like這是不是說在4.8.2添加)

+0

作爲一個側面說明,我沒有看到一個標籤這個「理論」功能。我假設['theory']標籤是針對大O複雜性等問題的理論問題。請隨時重新標記。 – MatrixFrog 2010-06-03 16:32:22

+0

+1似乎很奇怪。你有沒有嘗試任何其他集合類型? – ponzao 2010-06-03 19:21:03

+0

剛剛嘗試使用'Set'並更新了問題。這也不管用,無論你聲明爲「Set」還是「Collection」。 – MatrixFrog 2010-06-03 20:22:34

回答

1

我看了看問題,它似乎現在有一個未決的提交。它不在那裏的原因似乎很簡單,沒有人要求它,這是相當複雜的做法(因爲你已經在your patch證明)

+1

感謝您的跟進。我應該給這個SO回答添加評論,說我確實找到了一個解決方案(儘管它當然不是完美的),然後在github上發送了一個pull請求。 – MatrixFrog 2010-06-23 03:05:27

+0

我不確定,如果在3年後發表評論是一件好事。但我只想知道,這個問題上的最新情況如何。最新的Mockito版本仍未解決此問題。此外,上面發佈的鏈接不再存在。 – user613114 2014-01-06 05:44:22

相關問題