Меня попросили написать тестовый пример junit для Listener.class. Пулы слушателей для каталога и , если есть запрос, который обрабатывается.Проблемы с написанием заметок с ошибкой
Вопросы, которые я облицовкой
- много методов внутри Listener.class являются частными или защищенными.
- Слушатель - это поток, и он не запускается именно так. Перед началом инициализации слушателя и многими другими задачами.
Прогресс до сих пор:
Другой вопрос, который я столкнулся внутри класса слушателя, если метод вызывается, он внутренне вызывает другой метод, который будет использовать некоторые некоторые поля экземпляра, которые являются частными или защищены и значения полей тезисов задаются другими классами.
При поиске многих блогов и рассмотрении многих вопросов я пришел к выводу, что нам нужно написать макет из ранее названных классов и имитировать такое поведение. Я начал создавать класс mock, создав новый класс, который выполняет задачи до запуска Listener. Теперь мои старшие говорят, что это не путь, и все, что я делаю, это создание нового сервера, и эти коды не проверяются.
Так как я могу проверить код?
Мой поток программы - это что-то вроде этого.
- ServerConfiguration.class -> где конфигурация системы проверяется, яв-Verion и т.д.
- читает Server.xml
- ServerService.class -> Делает список всех слушателей, адаптеров и магазинов в хэш-карте, конфигурирует порты для прослушивателя и адаптеров
- Serverservice.class-> Теперь запускаются только те слушатели, которые отмечены как активные в XML-файле.
В моем случае Слушатели - это управляемый интерфейс. и они создаются потоком,
Просьба дать мне свои данные.
UPDATE
Теперь мой вопрос, как я могу запустить тестовый пример для метода, когда он использует переменные супер class.When я запускаю тест, он всегда будет терпеть неудачу, поскольку эти значения не инициализирован. Как мне продолжить?
private boolean params()
{
String integrity = "";
String sWAnswer = "";
try
{
try
{
integrity = super.getParam("CHECK_INTEGRITY");
sWAnswer = super.getParam("WRITE_ANSWER");
**Some Business Logic**
super.info("Request Directory : " + sRequestPath);
super.info("Response Directory : " + sResponsePath);
super.info("Error Directory : " + sErrorPath);
}
}
catch (Exception ex)
{
bCheck = false;
}
return bCheck;
}
Похоже, что код, который вы тестируете, должен быть реорганизован для обеспечения модульного тестирования. Тем не менее, прежде чем делать это, хорошо убедиться, что есть достаточный интеграционный тест вокруг кода, который вы реорганизуете, чтобы вы знали, что ваш рефакторинг что-то сломает. Прочитайте * Эффективно работайте с устаревшим кодом * Michael Feathers для получения более подробной информации о том, как проверить код, подобный этому – NamshubWriter