Класс JUnit должен иметь ровно один общедоступный конструктор

#java #junit

#java #junit

Вопрос:

В VS Code есть конкретный Java-проект со следующим тестом JUnit

 import static org.junit.Assert.fail;

import org.junit.Test;

class NgramTest {
    
    @Test 
    public void test() {
        fail("Not yet implemented");
    }

}
  

Если я его запускаю, я получаю ошибку initializationError, в которой говорится

java.lang.Исключение: Тестовый класс должен иметь ровно один общедоступный конструктор

Модульный тест Java в VS Code

Что можно сделать, чтобы решить эту проблему?

Ответ №1:

Вам нужно написать public перед классом NgramTest. Измените код на

 import static org.junit.Assert.fail;

import org.junit.Test;

public class NgramTest {
    
    @Test 
    public void test() {
        fail("Not yet implemented");
    }

}
  

Таким образом, он будет работать нормально, и вы получите, как и ожидалось, результат

java.lang.Ошибка утверждения: еще не реализовано

Тест JUnit прошел успешно в VSCode

Комментарии:

1. Можем ли мы заставить его работать без модификатора public?

2. @AlekhyaReddy если вы не используете ни один из модификаторов доступа, это означает, что вы используете модификатор доступа по умолчанию