их мало, то в юнит тестах, в которых ты хочешь замокать свои собственные модули, - оно превращается в какую-то несуразную кашу из множества интерфейсов на всё подряд, если ты хочешь мокнуть свой же модуль, который много чего считает и выдаёт одну цифру. Казалось бы: зачем заставлять его считать это всегда, когда можно попросить сразу вернуть нужную цифру, а протестить его функционал отдельно? Но это быстро превращается в десятки таких модулей, для которых десятки поведений перечислены в тестовом окружении.
Ну вот Mox не предназанчался для моков внутренних модулей, это нормально. Типа, я такой подход не люблю и не понимаю. Твоя система строится из композиции функций из разных модулей, и если мокать эти модули друг от друга, то и никаких тестов не будет. Типа, не получится отловить банальный баг из серии "поменял тут, а сломалось там" А то, что нужно интерфейсы писать, это мне тоже нравится. Общение с любым сторонним сервисом нужно вести через заданный интерфейс, иначе будут просто протекать абстракции.
Плюсую. Моки для интеграций с внешними сервисами
Обсуждают сегодня