Генерация и использование моков в Go / Mockery
Vložit
- čas přidán 16. 06. 2024
- В этом видео разберемся с моками в Go: что такое мок, как генерировать моки с помощью Mockery, как правильно использовать сгенерированные моки в тестах?
Документация по Mockery: vektra.github.io/mockery/
----
👾 t.me/ntuzov - мой канал в Telegram-канал - новости, анонсы всех наших активностей и просто интересные мысли
👀 GoLang Digest: t.me/golang_digest - мои регулярные подборки интересных материалов по Go.
🗣️ Сообщество Gopher Club: t.me/+zsSZ63wEJDs3NGVi
❤️ Если у вас есть желание поддержать развитие канала:
Секретный телеграм-канал:
- В рублях: t.me/+1UPXV_DGnG1mODJi
- В евро: t.me/+hedI8LevYTc5MDM6
boosty.to/nikolay.tuzov
/ tuzov
----
Тайм-коды:
00:00 Вступление
00:10 Что будем мокать? Пример хэндлера
02:38 Интерфейсы в месте использования
02:54 Mockery - что это?
03:24 //go:generate - зачем и как работает?
06:14 Код сгенерированного мока
07:21 Пишем тест с использованием мока
13:51 AssertExpectaions в t.Cleanup()
14:16 Более продвинутое использование моков Mockery
14:39 Ограничиваем количество вызовов - методы Once() и Times()
15:56 Возврат данных моком - метод Return()
17:20 Ограничения для принимаемых моком аргументов
18:56 Продвинутое использование Return()
20:54 Заключение
21:36 Бонус
#golang #ntuzov
👾Подписывайтесь на мой канал в Telegram: t.me/ntuzov - пишу там новости, анонсы разных своих активностей и просто интересные мысли
❤ Если у вас есть желание поддержать развитие канала:
Секретный телеграм-канал:
- В рублях: t.me/+1UPXV_DGnG1mODJi
- В евро: t.me/+hedI8LevYTc5MDM6
boosty.to/nikolay.tuzov
www.patreon.com/tuzov
Спасибо за видео! Урок про тесты нужен!!!
После шедулеера ждем видео по тестам!
По тестированию точно видео нужно, а то мокать научились, а тесты писать нет)
поддерживаю
Жду видос про тесты😊
Видео - Супер, а Конец(бонус) - просто🔥🔥🔥
Долгожданный видос, большое спасибо и сходу лайк!
Спасибо за видео. Коммент в поддержку!
Вот бы еще про тесты записал видос 🌠
Рассказываете достаточно качественно, грамотно, но честно, как-то в итоге не складывается понимания. Может стоит упростить теорию+объяснить2-3 примера
Хотел посмотреть что такое Mok и нифига не понял, думал после написания кода будет пример, как он работает, что получилось, но ничего не увидел. Очень познавательное видео
Спасибо, концовка зачётная. Теперь я запомнил, шо такое мок.
Фраза "Что такое мок?" теперь никогда не уйдет из головы
концовка топ, как и все ваше творчество ✌
Концовка крутая!!!) Напомнило творчество @metaLOLom, только там под металл. Тоже голосую за детальный обзор написания тестов(тесты хендлеров, роутеров и т.п.)
Бонус топ!!!
Спасибо за видос!
Даешь ролик по тестам!!
Спасибо, Николай!
видос про тестирование http и бд хотелось бы видеть, спасибо за твой контент
Привет
Видос супер, было бы супер увидеть видос про TDD, фаззинг
Николай, жду подробное видео про букву t :) особенно про библиотеку testify
нужно видео по тестам))
хах улыбнул бонус контент)
Чуть чуть лицо можно было бы поменьше сделать)
Давай более подробнее про тесты
Что такое мок? ахахаха теперь это в голове засело )
Я использую mockgen, исторически так сложилось - на тот момент, когда выбирал между mockery и mockgen , последний показался мне проще. К mockgen у меня много вопросов накопилось, но в принципе жить с ним можно тоже
Надо уменьшить себя нк общем фоне, перекрывает код местами. Некритично, но просто как совет на будущее
Привет, а про какое видео вы говорите, не могу найти? 9:05
Да тесты интересная тема
Не совсем понял как мокери выбирает папку в которой генерировать код моков. И что будет если интерфейс лежит не вместе где используется, а в другом пакете
у mockery есть настройка with-expecter: true
с которой ИМХО удобнее будет писать ожидания для моков, вместо `.Do("method_name....")` можно писать mock.EXPECT().MethodName.
просто синтаксический сахар
на вкус и цвет
Гофер-рэпер )))))
Почему в сгенерированном моке неопределенные типы и как лучше это исправить ?
Николай, ну это видео совсем для зелёных гоферов) Хотелось бы серьезное тестирование в го) Так что поддерживаю продолжение развития темы тестов!
И ты ещё забыл упомянуть за expect(флаг --with-expecter в мокери).
Пс. У меня тоже часто выходит errror когда пишу быстро) ещё бывает errrof)
Всё будет)
Н😂гг ❤❤г❤о
Что именно тестируют моки? Не понимаю их пользы. Тест контейнеры запускают реальные сервисы и возвращают реальные ответы. А моки это какая-то имитация которая непонятно как может найти баг в коде.
Сами моки ничего не тестируют. Это способ протестировать код в изоляции от его зависимостей.
К примеру, твоя функция должна как-то обработать данные и сделать 3 разных вызова в 3 разных сервиса. Таким образом, твой тест проверяет, что функция действительно эти вызовы делает, отправляет правильные данные, и правильным образом использует то что вернулось.
Конечно, это не отменяет интеграционные тесты - когда все зависимости работают по честному. Но это уже другой этап тестированию.