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

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

17 ответов

63 просмотра

в Мекке? 🤔

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

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...

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

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

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

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта