169 похожих чатов

Зачем мне его писать если в меке уже всё есть?

17 ответов

67 просмотров

в Мекке? 🤔

Приватные функции тестить, например

Lama Lover
Приватные функции тестить, например

А зачем приватные функции тестить?

Viktor Shinkevich
А зачем приватные функции тестить?

Затем же зачем и публичные тестить

Lama Lover
Затем же зачем и публичные тестить

Я гдето слышал что покрывать тестами приватные функции многие считают code smell

Viktor Shinkevich
Я гдето слышал что покрывать тестами приватные фун...

в приватных можно накуралесить, что паблик ф-ции будут гарантировано выдавать шлак 🤷‍♂️

Viktor Shinkevich
Я гдето слышал что покрывать тестами приватные фун...

Мб речь о том, что если приватная функция выполняет настолько сложную многокейсовую логику, что её нужно прям отдельно тестить, то тогда у неё достаточно много ответственности, чтобы сделать её публичной в отдельном модуле, тестить там и просто импортить?

G K
Мб речь о том, что если приватная функция выполняе...

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

Viktor Shinkevich
И тест на паблик функцию это покажет же

тест покажет, что ф-я вернула шлак. а тест на приват ф. покажет, что она вернула данные , которые (в первом приближении) привели к шлаку от публичной ф. 🤷‍♂️ поэтому будет проще разобраться: это код самой паб. функции тупит или приватная отдала что-то не то… основная де задача: локализовать место «где лажанул». поэтому, не вижу крамолы тестить и приватные.

Обыкнoвeнный челoвeк
тест покажет, что ф-я вернула шлак. а тест на прив...

Понимаю, звучит разумно. А поделись пожалуйста (ничего что на ты?) при таком подходе решение на что писать тест как принимается? На все публичные + некоторые приватные, некоторые пуб+ некоторые приват или на все вообще? И второй вопрос как принимается решение что функция достаточно выросла чтобы стать публичной?

Viktor Shinkevich
Понимаю, звучит разумно. А поделись пожалуйста (ни...

1. на ты оч даже норм. 🤝 2. интуитивно. я знаю критические места кода, их и покрываю. совсем очевидные участки кода не трогаю. у нас не практикуется: притягивать коверэйдж кода к 100% или почти к ста. (вот прямо сейчас, на текущей задаче, у меня 75%. и это оч даже замного) 3. публичность ф. решается на стадии проектирования. хотя, есть случаи, что приходится вытягивать приват. ф-цию в паблик. сейчас точно не сформулирую условия,- редко было…

Обыкнoвeнный челoвeк
1. на ты оч даже норм. 🤝 2. интуитивно. я знаю кри...

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

Lama Lover
Приватные функции тестить, например

В модуле сделать @compile (if Mix.env() == :test do :export_all end) и тестировать приватные.

Дмитрий Перцев
В модуле сделать @compile (if Mix.env() == :test...

Тогда невалидный код пройдёт тесты

Дмитрий Перцев
В смысле «невалидный»?

Тот код, который вызывает приватные функции из другого модуля

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта