Гамлет
Нужно сначала знать что ты хочешь написать, от реализации внутри теста ничего не должен изменится его вывод
koichi
можно просто закончить на том, что каждый пишет тесты как ему удобно и выбирает тот вид тестов, который ему удобен?)
koichi
вы же все равно тут никого не переубедите
koichi
те, кто отстаивают юнит-тесты вряд ли их перестанут использовать, ровно как и наоборот
koichi
пуки в воду, пузырьки только лопаются на лице
Гамлет
Грубо говоря ты пишешь адаптер, давая на вход JSON и получаешь XML. Тесту нельзя знать, что внутри функции, поэтому менять внутренности можно, но вывод то у тебя не должен поменяться
Гамлет
Если ты пишешь "то не знаю что", то конечно тесты это заеб и их переписывать придется чаще, чем сам функционал
Гамлет
Но суть такая, что ты 7 раз отмеришь и один реализуешь
Сергей
Andrii
Гамлет
koichi
тогда к чему сырбор?)
Dmitriy (Дима)
("Интеллектом давят" подумал я, хотящий стать программистом🤔)
Igor
Показал бы, но NDA)
Я попытаюсь все же внести конструктив в этот разговор, хоть и не хотел целяться :). По сути тдд отлично работает в методах без сайд эффектов, но поскольку все современные системы распределенные, то методов без сайд эффектов в некоторых областях почти не осталось. Бери с одного сервера кидай на другой сервер. Тестировать же методы с сайд эффектами с костылями в виде моков это имхо полный дрочь который ничего не тестирует кроме повтора основной логики в тестах. Такие тесты только мешают при рефакторинге.
Гамлет
тогда к чему сырбор?)
К тому, что я против жемонизации тестов среди начинающих разрабов. Потому что они ум в порядок приводят и руки выпрямляют похлеще тимлида на ревью
Гамлет
koichi
Гамлет
А они по функционалу вводу выводу одинаковы всегда
Viktor
Гамлет
Гамлет
Viktor
Andrii
то есть тесты ты в итоге пишешь, когда уверен, чтт пишешь, а когда работаешь по волне вдохновения, то пишешь тесты постфактум? :)
Я пишу тесты, которые тестируют весь функционал, а не отдельные методы. Например, шашки. Я напишу тест, который передаёт позицию и проверяет, что все ходы сгенерированы правильно. А всякие шестерёнки типа фукнция рекурсивного взятия дамкой я тестировать не буду. Потому для неё надо подготовить большой контекст, включачий предыдущие вызовы, ... Более того, этот контекст очень сильно меняется в процессе работы проекта
Igor
Андрию больше не наливать :) опять шашки и бумажный футбол :)
koichi
Я пишу тесты, которые тестируют весь функционал, а не отдельные методы. Например, шашки. Я напишу тест, который передаёт позицию и проверяет, что все ходы сгенерированы правильно. А всякие шестерёнки типа фукнция рекурсивного взятия дамкой я тестировать не буду. Потому для неё надо подготовить большой контекст, включачий предыдущие вызовы, ... Более того, этот контекст очень сильно меняется в процессе работы проекта
ну, на протяжении всей дискуссии лично я придерживаюсь нейтралитета, но с большим уклоном к вашему мнению, поэтому я солидарен
koichi
я не выступаю против юнит-тестов, но и не считаю их обязательными в принципе
Сергей
Гамлет
Я пишу тесты, которые тестируют весь функционал, а не отдельные методы. Например, шашки. Я напишу тест, который передаёт позицию и проверяет, что все ходы сгенерированы правильно. А всякие шестерёнки типа фукнция рекурсивного взятия дамкой я тестировать не буду. Потому для неё надо подготовить большой контекст, включачий предыдущие вызовы, ... Более того, этот контекст очень сильно меняется в процессе работы проекта
Повторюсь, юнит тесты не должны тестить локальные функции, а лишь глобальные, которые используются из вне(имхо)
koichi
только по желанию/надобности
Гамлет
И всякие декораторы тестить тоже тупл
Andrii
Гамлет
Гамлет
В любом случае
Гамлет
В начале они нужны, чтобы люди умели декомпозировать свои классы и функции
Andrii
Хм
И это не TDD, где основная догма: вначале пишем тест, а только потом функцию.
koichi
в общем, можно сойтись в итоге на том, что каждый тестирует как ему тестируется и если результат положительный, но дебаты можно считать исчерпывающими себя, а также и бесполезными для всех сторон конфликта?
Гамлет
Гамлет
Только правильно все декомпозировать и инкапсулироваьь
Гамлет
Рисовать мишень вокруг места от выстрела - идиотизм
Гамлет
Igor
А чё там уметь
тем же вопросом задаюсь каждый раз когда тут задачку постят :) когда умеешь не понятно в чем сложность
Гамлет
Есть отличные библиотеки и фреймворк, которые делают все за них и в тестах все обходиться парой строк функций
koichi
Igor
Гамлет
koichi
ну, я вробще не выступал бы за позицию, что уметь писать тесты = в следствии научитьчя писсть нормальный код
Гамлет
Там просто проверка результатов, они рисуют рамки, за которые нельзя выходит
Igor
Тесты != Код
да я говорю об общем уровне знаний и умений.
koichi
вообще, для начала, лучше научиться писать готовый код, чтобы под него накатить тесты, понять что и как, а там уже понять для себя готов ли ты сначала писать тесты, чтобы потом под них городить код
Igor
Чтобы научиться писать тесты нужно уметь в декомпозицию :) да если ты можешь в декомпозицию ты уже мидл :)
koichi
так как код сам себя не напишет, а тесты напишутся.
Гамлет
Что фича-функция это ублюдство
Денис
Мож про линкус лучше поговорим? Какое он говно, например...
Igor
koichi
линукс для декстопов говно
Гамлет
koichi
я вкатился в тему
Гамлет
Igor
koichi
Гамлет
Viktor
Не согласен
4к экраны ни один линь нормально не отобразил
Денис
koichi
Винда!
ооо, да Вы, я смотрю, умеете в кринж-троллинг
Viktor
Igor
Гамлет
Дети, хватит реьячится ос - инструмент
Гамлет
Для каждой задачи он свой, прекратите херней страдать
Viktor