2017-01-06 16 views
1

Нет юнитов написаны в приложении. Но в другом модуле мы начали писать Junits с помощью Jmockit. Поэтому любое ядро ​​Java или Jmockit будет высоко оценено.Junit: вызов частного метода без примера

У меня есть класс инициализации приложения, который является одиночным, он инициализирует приложение, вызывая базу данных [data load], файл свойств и т. Д. Его создание объекта сложное.

Я пишу новый метод для инициализации класса [имя метода addMoreInitilization].

Я хочу написать Junit для сценария выше. Есть ли способ написать Junit для метода addMoreInitilization, не вызывая сложную логику создания объекта, потому что он имеет много зависимостей и издевается над ними, и это невозможно, а также не хочет ставить метод?

Псевдо Java-код для класса ApplicationStartUp ниже

Class ApplicationStartUp { 

    private ApplicationStartUp applicationStartUp; 
    // assume single ton implemented 

    private ApplicationStartUp() { 
     // complex object creation 
     addMoreInitilization(); 
    } 

    public static getInstance() { 
    } 

    // new method 
    private addMoreInitilization() { 
     // my logic needs to be tested using junit 
    } 

} 

ответ

0

Вы можете расширить "ApplicationStartUp" в тестах. Затем переопределите нежелательные методы. Таким образом, вы можете создать объект подкласса и вызвать метод «addMoreInitialization» суперкласса.

+0

Вы не можете переопределить частные методы; это не имеет большого смысла. – GhostCat

+0

Вы правы. Не видел этого. – SebastianK

+0

Первое, что я пробовал, - это расширить класс ApplicationStartUp, но нельзя вызвать частный метод суперкласса. Также пытались использовать другие вещи, ссылки a. Отражение, но нужно иналиализовать объект, и это сложно, поэтому не стоит усилий. б. Класс декапсуляции от JMockit, но он имеет проблему как отражение. – Mahesh

 Смежные вопросы

  • Нет связанных вопросов^_^