我已經開始使用新的(ish)JUnit Theories功能進行參數化測試。如果你的理論是成立了以,例如,Integer
說法,Theories
測試運行拿起任何Integer
小號標有@DataPoint
:JUnit理論:爲什麼我不能使用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添加)
作爲一個側面說明,我沒有看到一個標籤這個「理論」功能。我假設['theory']標籤是針對大O複雜性等問題的理論問題。請隨時重新標記。 – MatrixFrog 2010-06-03 16:32:22
+1似乎很奇怪。你有沒有嘗試任何其他集合類型? – ponzao 2010-06-03 19:21:03
剛剛嘗試使用'Set'並更新了問題。這也不管用,無論你聲明爲「Set」還是「Collection」。 – MatrixFrog 2010-06-03 20:22:34