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

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

17 ответов

23 просмотра

в Мекке? 🤔

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
еще вопрос, допустим мы создадим char массив из 10 элементов и присвоим ему через сканф 10 символов. и выведем все символы. Хотел спросить последний элемент /0 будет включать...
Anthem
11
открыть папку в проводнике: 1 - ShellExecute 2 - ExecuteProcess 3 - OpenDocument что лучше выбрать?
Alexey Kulakov
12
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
21
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Карта сайта