ИИ

Тестировать удобно: альтернативы monkey patching в Go

Краткое резюме

В статье обсуждается возможность использования метода monkey patching в языке программирования Go для замены логики функций в тестовых сценариях. Автор не рекомендует применять monkey patching в продакшен-коде из-за нестабильности и непредсказуемости решений.

Недавно коллега задал мне вопрос о том, как в языке программирования Go реализовать замену логики функции в тестовых сценариях. Он пояснил, что хочет использовать метод monkey patching для подмены стандартных функций, например, чтобы time.Now возвращал фиксированное время, а uuid.New — определённый ID. Это нужно для удобства тестирования. Я был несколько озадачен этим вопросом. Хотя в Go существуют технические возможности для реализации monkey patching, в том числе с использованием библиотеки и небезопасных методов, таких как подмена указателей на функции в рантайме, я не рекомендую применять их в продакшен-коде. Подобные решения крайне нестабильны и непредсказуемы. Гораздо лучше воспользоваться нормальным, соответствующим принципам языка способом для решения этой задачи.

Фильтры и сортировка