Во многих приложениях у меня часто есть алгоритмы, которые используют выделенные под-алгоритмы (или просто четко определенные фрагменты кода).
До сих пор, когда я писал основной алгоритм, я создал частный метод для каждого под-алгоритма, как в примере ниже (OldStyle):
public class OldStyle {
public int mainAlg() {
int x = subAlg01();
int y = subAlg02();
int z = x * y;
return z;
}
private int subAlg01() {
return 3;
}
private int subAlg02() {
return 5;
}
}
Это работало нормально, но мне не нравилось распространение методов (subAlg01 и subAlg02), которые, даже частные, использовались только одним методом (mainAlg).
Недавно я рассмотрел использование локальных внутренних классов, и теперь мой пример (NewStyle):
public class NewStyle {
public int mainAlg() {
class Nested {
public int subAlg01() {
return 3;
}
public int subAlg02() {
return 5;
}
}
Nested n = new Nested();
int x = n.subAlg01();
int y = n.subAlg02();
int z = x * y;
return z;
}
}
Мне это очень нравится, но теперь у меня есть следующая проблема: как я могу проверить subAlg01 и subAlg02 с помощью JUnit?
Кстати: я использую eclipse.
Спасибо за помощь.
Изменить. Я пытаюсь объяснить лучше: у меня есть, скажем, алгоритм сортировки, и я хочу проверить его, чтобы убедиться, что он работает так, как ожидалось. Эти алгоритмы сортировки используются только методом m класса X. Я мог бы сделать его частным методом класса X, но класс X обычно не имеет ничего общего с сортировкой, поэтому зачем "испортить" класс X с помощью метода сортировки? Поэтому я помещаю его в метод m. Некоторое время спустя я хочу улучшить алгоритм сортировки (я делаю это быстрее), но я хочу быть уверенным, что это поведение, как и ожидалось, поэтому я хочу перепроверить его с помощью оригинальных тестов.
Что я хочу делать, может быть, нет решения, я надеюсь, что кто-то может мне помочь.
Изменить после выбора ответа. Я выбрал ответ Родни, потому что его решение - это тот, который я принял: автономный вспомогательный класс помогает мне (это помощник!) Иметь четкое представление о том, что такое вспомогательные методы, и это также дает мне возможность проверить их.