我创建了一个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