и не дошло)
Почему это плохо для тестирования (и дизайна)- иметь статик методы? Иметь процедурные куски?
Юнит-тест подразумевает - проверку минимального и автономного - куска кода, проверку корректности алгоритма. Аргумент - что "мокать нельзя" - не весомый. Потому как если это "минимальная единица" наша задача проверить только её логику.
А... моки ... построение графа зависимостей на пол-апа, чтобы протестить что-либо- это уже больше про интеграционное тестирование, которое чекает связку уже провереных юнитов
...это инструментейшн и пр... но не юнит
🤔
Мне кажется, что ноги растут от того, что обычно в статики слишком много говна суют. И вместо "минимального и автономного" куска получается гигантский монстр, который внутри делает больше, чем Аполлон-11 при посадке на луну )
Все проще, JUnit не умеет работать со статик и файнал методами, тест просто не скомпилируется если у тебя внутри метода которого ты вызываешь например стоит андроидовское (TextUtils.isEmpty())
Все так. Мы к примеру (в проде) все маперы переписали на kotlin-ext-функции (по сути статик-функции). Дальше их покрыли тестами - и все OK, тк они чистые (результат зависит только от параметров). Тестировать такое - одно удовольствие, никаких моков вообще не нужно. P.S. вот бы народ научился весь код писать на чистых функциях - так проще бы все стало (тестирование, понимание, де-композиция).
Обсуждают сегодня