我创建了一个 SortedList 类,它有一个以 java.util.Comparator 作为参数的构造函数。
在我的机器上运行单元测试后(通过 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) 处的 java.lang.reflect.Constructor.newInstance(Constructor.java:513) 处具有公共零参数构造函数作者:java.lang.NoSuchMethodException:ar.com.lib.SortedListTest$strcmp.() at java.lang.Class.getConstructor0(Class.java:2706) at java.lang.Class.getConstructor(Class.java:1657)
我尝试过使用 @Ignore 注释,但到目前为止还没有运气。当我尝试时它不会编译
@Ignore class strcmp{}
任何想法将不胜感激。提前致谢。