我創建了一個SortedList類,它有一個構造函數,它將java.util.Comparator作爲參數。Junit內嵌比較器初始化錯誤
在我的機器上運行單元測試(通過eclipse 3.3.0)後,一切正常。然而,哈德遜的投訴,因爲它說它不能實例化我的比較。
這裏的我的簡單測試(片段)
public class SortedListTest {
class strcmp implements Comparator<String>{
public strcmp(){}
public int compare(String s1,String s2){
return s1.compareTo(s2);
}
}
@Test
public void testAdd(){
SortedList<String> list = new SortedList<String>(new strcmp());
}
}
或另一種方式:
public void testAdd(){
SortedList<String> list = new SortedList<String>(new Comparator<String>(){
public int compare(String s1,String s2){
return s1.compareTo(s2);
}
});
}
錯誤哈德森顯示的是
ar.com.lib.SortedListTest $ strcmp.initializationError0
錯誤消息
測試類應該具有公共的無參數的構造
堆棧跟蹤
java.lang.Exception的:測試類應該 具有公共無參數構造 在 的java.lang .reflect.Constructor.newInstance(Constructor.java:513) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 引起者: java.lang.NoSuchMethodException: ar.com.lib.SortedListTest $的strcmp() 在 java.lang.Class.getConstructor0(Class.java:2706) 在 java.lang.Class.getConstructor(類。 java:1657)
我已經嘗試使用@Ignore註釋,但沒有運氣到目前爲止。它不會編譯當我嘗試
@Ignore class strcmp{}
任何想法將不勝感激。提前致謝。
我不明白哈得遜是如何參與這 – 2009-07-21 15:12:09
它的抱怨!麻煩製造者。 – Tom 2009-07-21 15:59:29
我收到了同樣的東西。測試在Maven的本地運行良好,但在Hudson上出現此錯誤。 @忽略班級也不管用。使用JUnit 3風格(擴展TestCase)也不起作用。 – Trenton 2009-08-21 17:03:46