Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тестирование private методов 
:(
    Опции темы
Antropoid
Дата 21.4.2011, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 786
Регистрация: 1.6.2006
Где: &Ukraine==Ode ssa

Репутация: нет
Всего: 16



Привет!

Хотелось бы найти наиболее вменяемый способ тестирования private методов.
Сейчас я, специально, делаю их package-private, только для того, чтобы тесты затрагивали мои private методы. Понимаю, что это не совсем правильно. Понимаю, что нужно тестировать public методы, которые используют private методы, но это не всегда(часто) не подходит, т.к. в private методах могут содержаться сложные вычисления, в правильности работы которых хотелось бы убедиться отдельно. 
Рефлексию тоже не хотелось бы трогать.

В общем, подскажите как здесь быть ? smile 


--------------------
user posted image
Задыхаясь от восторга заниматься чепухой. 
PM MAIL   Вверх
batigoal
Дата 21.4.2011, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: нет
Всего: 151



Цитата(Antropoid @  21.4.2011,  14:04 Найти цитируемый пост)
Сейчас я, специально, делаю их package-private, только для того, чтобы тесты затрагивали мои private методы. Понимаю, что это не совсем правильно

Поступаю аналогично, и не считаю это неправильным. Конечно, ты снижаешь этим метрику межклассовой изоляции, но существенно повышаешь testability. Имхо, это нормальная цена.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Старовъръ
Дата 21.4.2011, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.5.2008

Репутация: 2
Всего: 10



Возможно имеет смысл разделить класс, раз так выходит? Думаю проблема в большинстве таких случаев именно в том, что слишком многое возложено на один класс. 
Однако если это невозможно, то, мне кажется, ты делаешь правильно. Но если ты приведешь пример, то будет легче судить.
PM MAIL WWW   Вверх
batigoal
Дата 22.4.2011, 06:39 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: нет
Всего: 151



Цитата(Старовъръ @  21.4.2011,  20:51 Найти цитируемый пост)
Думаю проблема в большинстве таких случаев именно в том, что слишком многое возложено на один класс. 

Ну добиваться такой декомпозиции, чтобы класс нес только публичные методы - вряд ли это имеет смысл...


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Старовъръ
Дата 22.4.2011, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.5.2008

Репутация: 2
Всего: 10



Нет, нужно добиться того, чтоб в нем не было слишком много логики. Закрытые методы не имеет смысла тестировать, если они достаточно просты.
PM MAIL WWW   Вверх
batigoal
Дата 22.4.2011, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: нет
Всего: 151



Интересное мнение. Надо будет попробовать.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Design, Quality, Testing | Следующая тема »


 




[ Время генерации скрипта: 0.0425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.