Я создал класс 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
Сообщение об ошибке
Тестовый класс должен иметь открытый конструктор с нулевым аргументом
StackTrace
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 $ зЬгстр. ()
в
java.lang.Class.getConstructor0 (Class.java:2706)
в
java.lang.Class.getConstructor (Class.java:1657)
Я пытался использовать аннотацию @Ignore, но пока безуспешно. Он не скомпилируется, когда я попробую
@Ignore class strcmp{}
Любые идеи будут оценены. Заранее спасибо.