Как охватить методы внутренних классов? - PullRequest
2 голосов
/ 01 ноября 2010

Я столкнулся с проблемой того, как охватить методы моих внутренних классов.У меня есть небольшое приложение GUI (свинг) с несколькими кнопками и определенными слушателями действий в виде внутренних классов.Теперь я хочу написать тесты для каждого из методов слушателя действия, определенных в этих внутренних классах, но когда я создаю новый JUnit с использованием Eclipse, у меня нет возможности покрыть методы внутренних классов, но есть только открытые методы классагде эти внутренности определены.Пожалуйста, совет.

Ответы [ 4 ]

9 голосов
/ 01 ноября 2010

Концептуально, внутренние методы обычно не тестируются с помощью модульных тестов, потому что они считаются деталями реализации. Вы должны тестировать поведение вашего класса, тестируя его общедоступные методы.

Тем не менее ... http://www.artima.com/suiterunner/private.html

Я не уверен, зачем вам внутренние классы ... Они больше нигде не используются?Почему бы просто не сделать их общедоступными уроками за пределами вашего основного класса?

2 голосов
/ 01 ноября 2010

Это означает, что ваш код не тестируется.Переместите свою логику в отдельные классы и протестируйте их.(Например, они могут быть пакетно-частными, так что они все еще недоступны для внешнего мира)

Если ваши внутренние классы логически внутренние - т.е. они представляют некоторое внутреннее функционирование вашего класса - немодульный тест их , модульный тест методов родительского класса.

0 голосов
/ 01 ноября 2010

AFAIK, GUI компоненты сложно тестировать. Если вы действительно хотите проверить их, возможно, вы могли бы вытащить логический код в методы во внешнем классе и выполнить вызов метода во внутреннем классе для действия. Если ваши внутренние действия класса являются обновлениями GUI, я не уверен, как их можно эффективно протестировать.

0 голосов
/ 01 ноября 2010

Экземпляр внутреннего класса может быть создан только его внешним классом.Вы должны написать функции-оболочки во внешнем классе или сделать внутренний класс нормальным.

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