May
Тестирование и внутренние классы (inner class)
Posted in: Тестирование кода, Java technologies, J2SE |
При тестировании отдельных классов Java-приложения, многие используют метод main или создают дополнительный тестовый класс. Отдельный класс лучше использовать при интегральных тестах, а метод main после выпуска новой версии класса/пакета чаще всего нужно удалять.
В этой статье я вновь возвращаюсь к внутренним классам (inner class) для решения описанной выше проблемы. На этот раз мы рассмотрим статические внутренние классы.
Статический внутренний класс описывается с модификатором static внутри декларации другого (обрамляющего) класса. Вот пример такого класса:
public class OuterClass {
// ....
public static class TestInnerClass {
public static void main (String[] args) {
// ....
}
}
}
птак, чем нам помогает данное описание при тестировании.
Во-первых, внутренний класс компилируется в отдельный class-файл. В приведенном примере после компиляции мы получим 2 класса: OuterClass.class и OuterClass$TestInnerClass.class. То есть, после окончания тестирования второй class-файл можно просто удалить. Преимущества очевидны, тесты и функционал находятся в одном source-файле.
Во-вторых, класс TestInnerClass имеет доступ ко всем private и protected методам обрамляющего класса. пными словами, мы обходим инкапсуляцию для более полного тестирования. Пользуйтесь этой возможностью осторожно.
Если вы знакомы с JUnit-тестированием, вам ничего не мешает использовать Unit-тесты в методе main внутреннего класса.
Жду ваших вопросов и комментариев.
No Comments yet »
RSS feed for comments on this post. TrackBack URI