Я пытаюсь использовать unit test метод в классе, который инициализирует некоторые частные поля:
public void init(Properties props) throws Exception {
this.language = props.getProperty(Constants.LANGUAGE,Constants.LANGUAGE_DEFAULT);
this.country = props.getProperty(Constants.COUNTRY,Constants.COUNTRY_DEFAULT);
try {
this.credits = Integer.valueOf(props.getProperty(Constants.CREDITS_OPTION_NAME, Constants.CREDITS_DEFAULT_VALUE));
} catch (NumberFormatException e) {
throw new Exception("Invalid configuration: 'credits' does not contain a valid integer value.", e);
}
//rest of method removed for sake of simplicity
}
Моя дилемма заключается в том, что я хочу утверждать, что поля языка, страны и кредитов были установлены после вызова init, однако они являются частными, у которых нет общедоступных методов доступа. Я вижу, есть два решения для тестирования этого:
- Сделать общедоступными методы для доступа к закрытым полям, затем вызвать эти методы после тестирования метода init.
- Сделайте метод unit test только для вызова вызова, и предположим, что все работало правильно, не было исключено исключение.
Как вы думаете, это идеальный способ протестировать этот метод?