Генерация и использование моков в Go / Mockery

Sdílet
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

Komentáře • 43

  • @nikolay_tuzov
    @nikolay_tuzov  Před rokem +4

    👾Подписывайтесь на мой канал в Telegram: t.me/ntuzov - пишу там новости, анонсы разных своих активностей и просто интересные мысли
    ❤ Если у вас есть желание поддержать развитие канала:
    Секретный телеграм-канал:
    - В рублях: t.me/+1UPXV_DGnG1mODJi
    - В евро: t.me/+hedI8LevYTc5MDM6
    boosty.to/nikolay.tuzov
    www.patreon.com/tuzov

  • @user-uu9xi3rv8o
    @user-uu9xi3rv8o Před 21 hodinou

    Спасибо за видео! Урок про тесты нужен!!!

  • @DWGFragaed
    @DWGFragaed Před 28 dny +1

    После шедулеера ждем видео по тестам!

  • @lonelyq3950
    @lonelyq3950 Před rokem +34

    По тестированию точно видео нужно, а то мокать научились, а тесты писать нет)

  • @UAStriker
    @UAStriker Před rokem +8

    Жду видос про тесты😊

  • @timebroua
    @timebroua Před rokem +2

    Видео - Супер, а Конец(бонус) - просто🔥🔥🔥

  • @user-zp5rt6qb4k
    @user-zp5rt6qb4k Před rokem

    Долгожданный видос, большое спасибо и сходу лайк!

  • @sovrinfo
    @sovrinfo Před rokem +3

    Спасибо за видео. Коммент в поддержку!

  • @supermario6136
    @supermario6136 Před rokem +3

    Вот бы еще про тесты записал видос 🌠

  • @deleted76
    @deleted76 Před rokem +3

    Рассказываете достаточно качественно, грамотно, но честно, как-то в итоге не складывается понимания. Может стоит упростить теорию+объяснить2-3 примера

  • @KuciyMr
    @KuciyMr Před rokem +2

    Хотел посмотреть что такое Mok и нифига не понял, думал после написания кода будет пример, как он работает, что получилось, но ничего не увидел. Очень познавательное видео

  • @user-EaRL
    @user-EaRL Před 10 měsíci

    Спасибо, концовка зачётная. Теперь я запомнил, шо такое мок.

  • @asgames804
    @asgames804 Před 4 měsíci +1

    Фраза "Что такое мок?" теперь никогда не уйдет из головы

  • @galahad667
    @galahad667 Před 3 měsíci +1

    концовка топ, как и все ваше творчество ✌

  • @deniskononov2708
    @deniskononov2708 Před rokem +6

    Концовка крутая!!!) Напомнило творчество @metaLOLom, только там под металл. Тоже голосую за детальный обзор написания тестов(тесты хендлеров, роутеров и т.п.)

  • @valeriilav2786
    @valeriilav2786 Před 6 měsíci

    Бонус топ!!!
    Спасибо за видос!

  • @defanji8484
    @defanji8484 Před rokem +2

    Даешь ролик по тестам!!

  • @user-tv5pd2pv9q
    @user-tv5pd2pv9q Před 8 měsíci

    Спасибо, Николай!

  • @wat4mon
    @wat4mon Před rokem +2

    видос про тестирование http и бд хотелось бы видеть, спасибо за твой контент

  • @efimgibsun7969
    @efimgibsun7969 Před rokem

    Привет
    Видос супер, было бы супер увидеть видос про TDD, фаззинг

  • @user-ck8cd2dc5l
    @user-ck8cd2dc5l Před rokem +2

    Николай, жду подробное видео про букву t :) особенно про библиотеку testify

  • @kostareva_ea
    @kostareva_ea Před 5 měsíci

    нужно видео по тестам))

  • @IonTheOne
    @IonTheOne Před rokem +1

    хах улыбнул бонус контент)

  • @user-ic1hl5zj4f
    @user-ic1hl5zj4f Před rokem +5

    Чуть чуть лицо можно было бы поменьше сделать)

  • @intentl1762
    @intentl1762 Před rokem +1

    Давай более подробнее про тесты

  • @JustAmazingShow
    @JustAmazingShow Před 3 měsíci +1

    Что такое мок? ахахаха теперь это в голове засело )

  • @pawelf.7568
    @pawelf.7568 Před rokem

    Я использую mockgen, исторически так сложилось - на тот момент, когда выбирал между mockery и mockgen , последний показался мне проще. К mockgen у меня много вопросов накопилось, но в принципе жить с ним можно тоже

  • @user-jx8jl7nc3j
    @user-jx8jl7nc3j Před rokem +1

    Надо уменьшить себя нк общем фоне, перекрывает код местами. Некритично, но просто как совет на будущее

  • @user-no9zt9dh4o
    @user-no9zt9dh4o Před 5 měsíci

    Привет, а про какое видео вы говорите, не могу найти? 9:05

  • @GushchinAndrei
    @GushchinAndrei Před rokem

    Да тесты интересная тема

  • @phplego
    @phplego Před 2 měsíci

    Не совсем понял как мокери выбирает папку в которой генерировать код моков. И что будет если интерфейс лежит не вместе где используется, а в другом пакете

  • @hound406
    @hound406 Před 11 měsíci

    у mockery есть настройка with-expecter: true
    с которой ИМХО удобнее будет писать ожидания для моков, вместо `.Do("method_name....")` можно писать mock.EXPECT().MethodName.

    • @dayoff103
      @dayoff103 Před 8 měsíci

      просто синтаксический сахар
      на вкус и цвет

  • @Svetlana-ez6ug
    @Svetlana-ez6ug Před rokem

    Гофер-рэпер )))))

  • @shinsh8436
    @shinsh8436 Před 8 měsíci

    Почему в сгенерированном моке неопределенные типы и как лучше это исправить ?

  • @user-qi6vq3gb9s
    @user-qi6vq3gb9s Před rokem +2

    Николай, ну это видео совсем для зелёных гоферов) Хотелось бы серьезное тестирование в го) Так что поддерживаю продолжение развития темы тестов!
    И ты ещё забыл упомянуть за expect(флаг --with-expecter в мокери).
    Пс. У меня тоже часто выходит errror когда пишу быстро) ещё бывает errrof)

  • @qwertymaster1195
    @qwertymaster1195 Před 4 měsíci

    Н😂гг ❤❤г❤о

  • @alexfilus
    @alexfilus Před rokem +1

    Что именно тестируют моки? Не понимаю их пользы. Тест контейнеры запускают реальные сервисы и возвращают реальные ответы. А моки это какая-то имитация которая непонятно как может найти баг в коде.

    • @nikolay_tuzov
      @nikolay_tuzov  Před rokem +1

      Сами моки ничего не тестируют. Это способ протестировать код в изоляции от его зависимостей.
      К примеру, твоя функция должна как-то обработать данные и сделать 3 разных вызова в 3 разных сервиса. Таким образом, твой тест проверяет, что функция действительно эти вызовы делает, отправляет правильные данные, и правильным образом использует то что вернулось.
      Конечно, это не отменяет интеграционные тесты - когда все зависимости работают по честному. Но это уже другой этап тестированию.