Модульное тестирование Java-конструктора, который выходит из приложения - PullRequest
0 голосов
/ 29 июля 2009

Дубликат : Java: Как проверить методы, которые вызывают System.exit ()?


У меня возникли некоторые проблемы при разработке модульного теста для метода, который выходит из приложения путем вызова system.exit(). Фактически, это конструктор класса, который проверяет некоторые условия и решает выйти из приложения. Так что именно эту возможность я хотел бы проверить.

Есть ли какое-то конкретное утверждение, которое я мог бы использовать, или какие-либо другие предложения?

public MyClass(arg1, arg2, arg3){
    if(argsTestingIsOK){
        continue;       
    }else{
        System.exit(0);
    }
}

Ответы [ 2 ]

7 голосов
/ 29 июля 2009

Вместо exit() -ing в конструкторе, вместо этого выведите IllegalArgumentException (поскольку это то, что действительно происходит) и оставьте его вызывающей стороне для обработки исключения. Код приложения может быть написан для обработки исключения, в то время как тест JUnit может утверждать, что возникло исключение.

4 голосов
/ 29 июля 2009

Не делайте этого в конструкторе. Это плохая идея, и она вводит в заблуждение всех, кто использует ваш код.

Лучше всего использовать что-то вроде System.exit () в основном методе или в точке входа в ваше приложение - определенно не в середине кода конструирования объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...