powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Тестирование private методов
25 сообщений из 215, страница 3 из 9
Тестирование private методов
    #40075362
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отстал я от жизни. Мои познания в методологиях наверное начала не то, что 2000, а 1990-х годов.

Тогда модно было не TDD, а extrime programming. Вроде как ориентировалось как раз на скорость написание кода. Но одновременное написание теста - одна из основ и в XP.

Т.ч. тесты тестам рознь и со скоростью набивания текста связаны слабо.

AFAIK
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075464
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Отстал я от жизни. Мои познания в методологиях наверное начала не то, что 2000, а 1990-х годов.

Тогда модно было не TDD, а extrime programming. Вроде как ориентировалось как раз на скорость написание кода. Но одновременное написание теста - одна из основ и в XP.

Т.ч. тесты тестам рознь и со скоростью набивания текста связаны слабо.

AFAIK


Ну главное в XP это писать вдвоем, желательно за одним компьютером.

<:o)
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075468
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jetbrains там разрабатывал какие-то новые плагины для коллективной разработки.

Кто-то пробовал?
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075476
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
Ну это лишь значит что у вас слабые аналитика, разработка и, видимо, в целом процессы. У вас в принципе мало шансов на эффективную разработку. Это не значит что у вас ничего не получится, это лишь значит что вы медленно продвигаетесь вперед.

Основная задача TDD лишь в том, чтоб разбивать сложные задачи/алгоритмы на мелкие шаги. Сложные штуки бывают во всех отраслях и во всех типах организаций. И в "активно развивающихся", и в стабильных.

Какой то спонтанный выброс эмоций)
зачем мне тдд ,чтобы декомозировать задачи на более маленькие? у вас все настолько плохо с тех.лидом ?
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075490
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот когда свои структуры данных разрабатывал. Графы там. и прочее. В первую очередь писал тесты.
Это скажем так... сам бох велел.
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075518
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я вот когда свои структуры данных разрабатывал. Графы там. и прочее. В первую очередь писал тесты.
Это скажем так... сам бох велел.

Звучит так ,Как если бы ты пришел в ресторан и прежде чем выбрать что- то из меню сходил в туалет и покакал в себя)
поняв что TASTE NOT SO GOOD ты выбрал что то иное,из того что ел вчера)
Ну по факту комичная ситуация с TDD - видимо либо аналитики слабые,либо очено мало работы у разрабов- по другому сложно понять - зачем это
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075520
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
mayton
Я вот когда свои структуры данных разрабатывал. Графы там. и прочее. В первую очередь писал тесты.
Это скажем так... сам бох велел.

Звучит так ,Как если бы ты пришел в ресторан и прежде чем выбрать что- то из меню сходил в туалет и покакал в себя)
поняв что TASTE NOT SO GOOD ты выбрал что то иное,из того что ел вчера)
Ну по факту комичная ситуация с TDD - видимо либо аналитики слабые,либо очено мало работы у разрабов- по другому сложно понять - зачем это

Если вспомнить что тесты - суть документация (или спека) переписанная кодом - то все становится на места.
Кодишь по спеке - кодишь по TDD.
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075522
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
asv79
пропущено...

Звучит так ,Как если бы ты пришел в ресторан и прежде чем выбрать что- то из меню сходил в туалет и покакал в себя)
поняв что TASTE NOT SO GOOD ты выбрал что то иное,из того что ел вчера)
Ну по факту комичная ситуация с TDD - видимо либо аналитики слабые,либо очено мало работы у разрабов- по другому сложно понять - зачем это

Если вспомнить что тесты - суть документация (или спека) переписанная кодом - то все становится на места.
Кодишь по спеке - кодишь по TDD.

возникает один вопрос где взять спеку)тебе такое задатут миллионы разрабов по всему миру и твое ТДД не вытерпит ни какой критики

нет никаких спек в реальном программировании- тока у мастадонотов,да и то не всегда и не везде
да даже у мастадонтов такая там печаль что забей
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075525
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
mayton
пропущено...

Если вспомнить что тесты - суть документация (или спека) переписанная кодом - то все становится на места.
Кодишь по спеке - кодишь по TDD.

возникает один вопрос где взять спеку)тебе такое задатут миллионы разрабов по всему миру и твое ТДД не вытерпит ни какой критики

нет никаких спек в реальном программировании- тока у мастадонотов,да и то не всегда и не везде
да даже у мастадонтов такая там печаль что забей

Тест - это набор утверждений. Обычно простых. Если на вход бизнес-объекта пришло ... тра-ляля то на выходе .. труляля.
Обычно это хотя-бы 1 раз проговаривают. Хотя-бы сам для себя ты это проговариваешь. Можно говорить - функция.
И мне даже Ф. больше нравится но уж коли мы тут варимся в мире ООП то пускай будет бизнес-объект.
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075526
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
asv79
пропущено...

возникает один вопрос где взять спеку)тебе такое задатут миллионы разрабов по всему миру и твое ТДД не вытерпит ни какой критики

нет никаких спек в реальном программировании- тока у мастадонотов,да и то не всегда и не везде
да даже у мастадонтов такая там печаль что забей

Тест - это набор утверждений. Обычно простых. Если на вход бизнес-объекта пришло ... тра-ляля то на выходе .. труляля.
Обычно это хотя-бы 1 раз проговаривают. Хотя-бы сам для себя ты это проговариваешь. Можно говорить - функция.
И мне даже Ф. больше нравится но уж коли мы тут варимся в мире ООП то пускай будет бизнес-объект.

смотри если есть некая вменяемая спека -зачем тебе тест?
вот у меня две задачи
одна подходит под TDD - по кафке нам летят месаджи из них я должен собрать два объекта и связать их 1 к многим
тут да можно написать тест - но накой хер он мне?я буду тратить пару дней на это и потом еще 1 на код?)
а тесты юнит я нагенерю за пару часов
ну и вторая задача это прикрутить АБАК - никто не знает ничего что надо и что должно быть - нука прикрути сюда свой ТДД)

шляпа это все ,как правильно сказал выше памфилов- просто какой то дурак сказал и все начали повторять
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075527
asv79зачем мне тдд ,чтобы декомозировать задачи на более маленькие?Кто-то что-то говорил про декомпозицию задач?
Книгу по TDD ты видимо не читал. Когда тут тебе рассказывают что такое TDD ты тоже не особо вчитываешься. Т.е. ты влезаешь в дискуссию в которой заведомо не разбираешься и учиться не отказываешься. Осталось только понять зачем :)
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075528
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79

смотри если есть некая вменяемая спека -зачем тебе тест?
вот у меня две задачи
одна подходит под TDD - по кафке нам летят месаджи из них я должен собрать два объекта и связать их 1 к многим
тут да можно написать тест - но накой хер он мне?я буду тратить пару дней на это и потом еще 1 на код?)
а тесты юнит я нагенерю за пару часов
ну и вторая задача это прикрутить АБАК - никто не знает ничего что надо и что должно быть - нука прикрути сюда свой ТДД)

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

Панфилов сказал что не нужно бездумно повторять. Вот ты поменяешь проект (кто знает) и придешь вникать
в новые процессы. А там окажется и команда и весь облуживающий персонал сидят на TDD просто потому что
предметная область такова. И условия подходящие. Что возмутишся? Или скажешь - я не буду делать? Хер
там. Сядешь, утрёшь слёзы и погнал кодить по TDD. Так што от тюрмы и от сумы....
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075536
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
asv79зачем мне тдд ,чтобы декомозировать задачи на более маленькие?
Кто-то что-то говорил про декомпозицию задач?
Книгу по TDD ты видимо не читал. Когда тут тебе рассказывают что такое TDD ты тоже не особо вчитываешься. Т.е. ты влезаешь в дискуссию в которой заведомо не разбираешься и учиться не отказываешься. Осталось только понять зачем :)
я прекрасно знаю что такое ваше печальное ТДД и имел опыт работы с таким подходом)
вот ты стасят вроде и норм местами,но вешаешь ярлыки не разобравшись в проблеме)
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075537
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
asv79

смотри если есть некая вменяемая спека -зачем тебе тест?
вот у меня две задачи
одна подходит под TDD - по кафке нам летят месаджи из них я должен собрать два объекта и связать их 1 к многим
тут да можно написать тест - но накой хер он мне?я буду тратить пару дней на это и потом еще 1 на код?)
а тесты юнит я нагенерю за пару часов
ну и вторая задача это прикрутить АБАК - никто не знает ничего что надо и что должно быть - нука прикрути сюда свой ТДД)

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

Панфилов сказал что не нужно бездумно повторять. Вот ты поменяешь проект (кто знает) и придешь вникать
в новые процессы. А там окажется и команда и весь облуживающий персонал сидят на TDD просто потому что
предметная область такова. И условия подходящие. Что возмутишся? Или скажешь - я не буду делать? Хер
там. Сядешь, утрёшь слёзы и погнал кодить по TDD. Так што от тюрмы и от сумы....

Никода я не буду кодить по ТДД,ибо это уже не кодинг,а какая то ферма по выращиваниванию овощей
Мне нужен полет фантазии и прочие ништяки,а свое ТДД засуньте себе ЖПО и будьте здоровы)
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075539
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Панфилов сказал что не нужно бездумно повторять.

панфилов сказал то что сказал и там явно не то что ты сейчас написал
По факту ТДД нужно для просто каких то конченых даунов ,которые не способны реализовать задачу иначе,чем через уже готовый тест
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075584
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79, мне нравится твой неприкрытый максимализм.
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075613
gmugar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav Bashkyrtsevgmugarновый публичный метод(e.g. getResults()), который возвращает результаты в виде какой-то удобной (и unmodifiable) структуры,

Ну вот ты открыл метод который до этого был private или package private (если мы его таки открывали для тестирования). Что здесь принципиально поменялось? Т.е. если этот метод лежал в старом классе, то тебе не нравилось его открывать только для тестирования. А если его перенести в другой класс и сделать public, то так открывать код чисто для тестирования - правильно. Почему?
gmugarон не раскрывает никаких кишок класса; по сути, это те же данные, которые клиенты уже получают посредством toCsv(), просто в другом формате

Плохо тут то что у нас +1 публичная сущность. До этого я видел с какими классами в пакете мне нужно было взаимодействовать, а теперь оказывается есть public классы которые на самом деле мне не нужны. Но эта проблема решается - твой новый класс можно сам по себе сделать package private, т.е. он не будет виден из-вне пакета. Но опять же - в чем разница метод открывать или класс?

мы с вами по кругу ходим.
напомню, что изначально вопрос был в том нужно ли тестировать private методы.
речь шла о private, а не о package-private, что не одно и то же.
моя мысль в том, что если, вдруг, без тестирования через private не получается (с соблюдением концепции хорошего unit-теста, одна из важных особенностей которого - простота написание этого самого unit-теста), то надо что-то менять, а не лезть в private.
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075615
gmugar
Stanislav Bashkyrtsevпропущено...

Ну вот ты открыл метод который до этого был private или package private (если мы его таки открывали для тестирования). Что здесь принципиально поменялось? Т.е. если этот метод лежал в старом классе, то тебе не нравилось его открывать только для тестирования. А если его перенести в другой класс и сделать public, то так открывать код чисто для тестирования - правильно. Почему?
пропущено...

мы с вами по кругу ходим.
напомню, что изначально вопрос был в том нужно ли тестировать private методы.
речь шла о private, а не о package-private, что не одно и то же.
моя мысль в том, что если, вдруг, без тестирования через private не получается (с соблюдением концепции хорошего unit-теста, одна из важных особенностей которого - простота написание этого самого unit-теста), то надо что-то менять, а не лезть в private.Ну дак то что ты предлагаешь сделать - это и есть лезть в private. Твое предложение заключается в том чтоб просто открыть приватный код, выделив его в отдельный класс. Я лишь хочу заметить что это ничем по своей сути не отличается от того чтоб сделать приватный метод package private оставив его в изначальном классе. В обоих случаях мы открываем private код.

А правильный "не лезть в private" заключается в том чтоб оставить prod код в покое и тестировать все через настоящий public API (а не сконструированный только потому что тестам надо было). Со всеми вытекающими плюсами и минусами.
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075622
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы скоро дойдем до Java9 модулей. Мне кажется спор - схоластика вокруг ООП. Что считать приватным и полу-приватным.

Ведь это же не важно. А важно чтобы бизнес-кейс прошел на 100% в зеленый сегмент тестирования.
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075624
gmugar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav BashkyrtsevА правильный "не лезть в private" заключается в том чтоб оставить prod код в покое и тестировать все через настоящий public API (а не сконструированный только потому что тестам надо было). Со всеми вытекающими плюсами и минусами.

с этим, собственно, никто и не спорит.
вообще тестировать нужно только, этот самый, "настоящий public API".

но вот c "логику очень часть неудобно покрывать через public интерфейс."(это ваши слова), я не согласен в корне.
мой опыт, однозначно, не совпадает с этой точкой зрения.
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075630
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ (прогеры) уверяет в веб, что при тестах скорость снижается только первые два года их написания.
Зато потоооооом))
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075647
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
Ну дак то что ты предлагаешь сделать - это и есть лезть в private. Твое предложение заключается в том чтоб просто открыть приватный код, выделив его в отдельный класс. Я лишь хочу заметить что это ничем по своей сути не отличается от того чтоб сделать приватный метод package private оставив его в изначальном классе. В обоих случаях мы открываем private код.

А правильный "не лезть в private" заключается в том чтоб оставить prod код в покое и тестировать все через настоящий public API (а не сконструированный только потому что тестам надо было). Со всеми вытекающими плюсами и минусами.


Не совсем. Если нужно протестировать private метод, это значит, что этот метод не может быть private.
И скорее всего там где-то нарушен принцип "single responsibility principle".
Так что вынести логику в отдельный класс это скорее всего правильное решение.
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075676
mad_nazgul
Stanislav Bashkyrtsev
Ну дак то что ты предлагаешь сделать - это и есть лезть в private. Твое предложение заключается в том чтоб просто открыть приватный код, выделив его в отдельный класс. Я лишь хочу заметить что это ничем по своей сути не отличается от того чтоб сделать приватный метод package private оставив его в изначальном классе. В обоих случаях мы открываем private код.

А правильный "не лезть в private" заключается в том чтоб оставить prod код в покое и тестировать все через настоящий public API (а не сконструированный только потому что тестам надо было). Со всеми вытекающими плюсами и минусами.


Не совсем. Если нужно протестировать private метод, это значит, что этот метод не может быть private.
И скорее всего там где-то нарушен принцип "single responsibility principle".
Так что вынести логику в отдельный класс это скорее всего правильное решение.
Ну вот же я приводил пример:
Stanislav BashkyrtsevРеальный пример: есть робот который умеет переливать жидкость из пробирок в другие пробирки. Одна из команд представленна в виде: ВсосатьЖидкость(сколько, откуда, еще доп параметры). Робот принимает на вход CSV, соответственно классу нужен только один публичный метод: toCsv(). Но в тестах парсить CSV для проверки расчетов очень не удобно из-за чего приходится открывать кой-какие внутренности.В этом примере SRP не поможет. Просто мы будем тестировать либо CSV, либо прийдется открывать поля класса через те же package private или public getter'ы. Здесь явно нарушается инкапсуляция только ради тестов. И это частая проблема. Просто люди так много слышат что тесты якобы улучшают дизайн, что пытаются отгонять от себя эти темные мысли :D
gmugarвообще тестировать нужно только, этот самый, "настоящий public API".Наша песня хороша - начинай сначала :)
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075691
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav Bashkyrtsev
Просто люди так много слышат что тесты якобы улучшают дизайн

Вообще практическая польза тестов стремится к нулю
по факту они ипользуются лишь при сборке и потом приложение попадает на тестовые стенды ,где даже если бы тестов не было - все это вылезет 100500 тысяч миллионов раз и без всяких юнит тестов
Тоесть просто выкидываем деньги на ветер- тратя время разрабов на создание и что не мало важно поддержку этой юзлесс истории
Стандартная ситуация - написаны тесты,поступила задача поменять какой то класс ,который учавствовал в тесте- фигах тесты падают- хотя фактически все норм,просто тест уже неактуален и вот ты идешь ее актуализировать
Получается порочный круг ,вместо какой то видимой помощи,тесты наоборот замедляют работу разработчиков

Вот что по сути нужно,это коменнты на коде - ты тут нагадил - а потом после тебя люди приходят и гадают ,а что это такое и что он хотел- доходит до такого ,что никто не в состоянии понять для чего вот это поле в классе и какой в нем смысл)

Я не против тестов ,как таковых - но какой то продуктивной пользы в них не вижу от слова совсем и есть конторы где с тестами носятся как с писаной торбой,а есть где этих тестов нет и все прекрасно работает и развивается в своем ключе без них
...
Рейтинг: 0 / 0
Тестирование private методов
    #40075698
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79, тыж в банке верно? Значит в разработке есть своя цена ошибки.

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

То что ты говоришь про тестовые стенды - это другая часть работы. Это наверное отвественность QA.
Но QA не тестирует нефункциональное минорное и техническое. Всякие там NPE и прочее. Они конешно
могут это найти случайно. Но репутация сектора разработки тоже страдает. Выж не должны выкатывать
забагованный по самую крышу рализ-кандидат. Надо как-то проявить аккуратность. Репутационный вопрос
вобщемто.
...
Рейтинг: 0 / 0
25 сообщений из 215, страница 3 из 9
Форумы / Java [игнор отключен] [закрыт для гостей] / Тестирование private методов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]