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

  Рет қаралды 15,436

Николай Тузов — Golang

Николай Тузов — Golang

Күн бұрын

В этом видео разберемся с моками в 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

Пікірлер: 42
@nikolay_tuzov
@nikolay_tuzov Жыл бұрын
👾Подписывайтесь на мой канал в Telegram: t.me/ntuzov - пишу там новости, анонсы разных своих активностей и просто интересные мысли ❤ Если у вас есть желание поддержать развитие канала: Секретный телеграм-канал: - В рублях: t.me/+1UPXV_DGnG1mODJi - В евро: t.me/+hedI8LevYTc5MDM6 boosty.to/nikolay.tuzov www.patreon.com/tuzov
@UAStriker
@UAStriker Жыл бұрын
Жду видос про тесты😊
@DWGFragaed
@DWGFragaed 13 сағат бұрын
После шедулеера ждем видео по тестам!
@lonelyq3950
@lonelyq3950 Жыл бұрын
По тестированию точно видео нужно, а то мокать научились, а тесты писать нет)
@DWGFragaed
@DWGFragaed 14 сағат бұрын
поддерживаю
@supermario6136
@supermario6136 Жыл бұрын
Вот бы еще про тесты записал видос 🌠
@deniskononov2708
@deniskononov2708 Жыл бұрын
Концовка крутая!!!) Напомнило творчество @metaLOLom, только там под металл. Тоже голосую за детальный обзор написания тестов(тесты хендлеров, роутеров и т.п.)
@timebroua
@timebroua Жыл бұрын
Видео - Супер, а Конец(бонус) - просто🔥🔥🔥
@sovrinfo
@sovrinfo Жыл бұрын
Спасибо за видео. Коммент в поддержку!
@galahad667
@galahad667 2 ай бұрын
концовка топ, как и все ваше творчество ✌
@user-EaRL
@user-EaRL 9 ай бұрын
Спасибо, концовка зачётная. Теперь я запомнил, шо такое мок.
@asgames804
@asgames804 3 ай бұрын
Фраза "Что такое мок?" теперь никогда не уйдет из головы
@user-zp5rt6qb4k
@user-zp5rt6qb4k Жыл бұрын
Долгожданный видос, большое спасибо и сходу лайк!
@wat4mon
@wat4mon Жыл бұрын
видос про тестирование http и бд хотелось бы видеть, спасибо за твой контент
@KuciyMr
@KuciyMr Жыл бұрын
Хотел посмотреть что такое Mok и нифига не понял, думал после написания кода будет пример, как он работает, что получилось, но ничего не увидел. Очень познавательное видео
@defanji8484
@defanji8484 Жыл бұрын
Даешь ролик по тестам!!
@user-ck8cd2dc5l
@user-ck8cd2dc5l Жыл бұрын
Николай, жду подробное видео про букву t :) особенно про библиотеку testify
@user-tv5pd2pv9q
@user-tv5pd2pv9q 7 ай бұрын
Спасибо, Николай!
@deleted76
@deleted76 Жыл бұрын
Рассказываете достаточно качественно, грамотно, но честно, как-то в итоге не складывается понимания. Может стоит упростить теорию+объяснить2-3 примера
@IonTheOne
@IonTheOne Жыл бұрын
хах улыбнул бонус контент)
@valeriilav2786
@valeriilav2786 5 ай бұрын
Бонус топ!!! Спасибо за видос!
@efimgibsun7969
@efimgibsun7969 Жыл бұрын
Привет Видос супер, было бы супер увидеть видос про TDD, фаззинг
@kostareva_ea
@kostareva_ea 4 ай бұрын
нужно видео по тестам))
@intentl1762
@intentl1762 Жыл бұрын
Давай более подробнее про тесты
@pawelf.7568
@pawelf.7568 Жыл бұрын
Я использую mockgen, исторически так сложилось - на тот момент, когда выбирал между mockery и mockgen , последний показался мне проще. К mockgen у меня много вопросов накопилось, но в принципе жить с ним можно тоже
@JustAmazingShow
@JustAmazingShow 2 ай бұрын
Что такое мок? ахахаха теперь это в голове засело )
@user-ic1hl5zj4f
@user-ic1hl5zj4f Жыл бұрын
Чуть чуть лицо можно было бы поменьше сделать)
@GushchinAndrei
@GushchinAndrei Жыл бұрын
Да тесты интересная тема
@user-no9zt9dh4o
@user-no9zt9dh4o 5 ай бұрын
Привет, а про какое видео вы говорите, не могу найти? 9:05
@hound406
@hound406 10 ай бұрын
у mockery есть настройка with-expecter: true с которой ИМХО удобнее будет писать ожидания для моков, вместо `.Do("method_name....")` можно писать mock.EXPECT().MethodName.
@dayoff103
@dayoff103 7 ай бұрын
просто синтаксический сахар на вкус и цвет
@user-jx8jl7nc3j
@user-jx8jl7nc3j Жыл бұрын
Надо уменьшить себя нк общем фоне, перекрывает код местами. Некритично, но просто как совет на будущее
@Svetlana-ez6ug
@Svetlana-ez6ug Жыл бұрын
Гофер-рэпер )))))
@phplego
@phplego Ай бұрын
Не совсем понял как мокери выбирает папку в которой генерировать код моков. И что будет если интерфейс лежит не вместе где используется, а в другом пакете
@user-qi6vq3gb9s
@user-qi6vq3gb9s Жыл бұрын
Николай, ну это видео совсем для зелёных гоферов) Хотелось бы серьезное тестирование в го) Так что поддерживаю продолжение развития темы тестов! И ты ещё забыл упомянуть за expect(флаг --with-expecter в мокери). Пс. У меня тоже часто выходит errror когда пишу быстро) ещё бывает errrof)
@nikolay_tuzov
@nikolay_tuzov Жыл бұрын
Всё будет)
@qwertymaster1195
@qwertymaster1195 3 ай бұрын
Н😂гг ❤❤г❤о
@shinsh8436
@shinsh8436 7 ай бұрын
Почему в сгенерированном моке неопределенные типы и как лучше это исправить ?
@alexfilus
@alexfilus Жыл бұрын
Что именно тестируют моки? Не понимаю их пользы. Тест контейнеры запускают реальные сервисы и возвращают реальные ответы. А моки это какая-то имитация которая непонятно как может найти баг в коде.
@nikolay_tuzov
@nikolay_tuzov Жыл бұрын
Сами моки ничего не тестируют. Это способ протестировать код в изоляции от его зависимостей. К примеру, твоя функция должна как-то обработать данные и сделать 3 разных вызова в 3 разных сервиса. Таким образом, твой тест проверяет, что функция действительно эти вызовы делает, отправляет правильные данные, и правильным образом использует то что вернулось. Конечно, это не отменяет интеграционные тесты - когда все зависимости работают по честному. Но это уже другой этап тестированию.
Пробуем дженерики Go на практике
19:14
Николай Тузов — Golang
Рет қаралды 14 М.
Как на самом деле устроены каналы в Golang? | Golang channels internals
41:31
ISSEI funny story😂😂😂Strange World | Magic Lips💋
00:36
ISSEI / いっせい
Рет қаралды 141 МЛН
didn't want to let me in #tiktok
00:20
Анастасия Тарасова
Рет қаралды 12 МЛН
GADGETS VS HACKS || Random Useful Tools For your child #hacks #gadgets
00:35
FLIP FLOP Hacks
Рет қаралды 101 МЛН
Тестирование с помощью Mock-ов в Python #1
15:38
Golang's Mocking Techniques - Kyle Yost | hatchpad Huddle
41:20
Тайные знания о GoLang, которые от вас скрывали / 1 апреля
20:30
Testing with golang and testify - mocking - tutorial part 3
19:36
Thomas Langhorst
Рет қаралды 14 М.
Хэш-таблицы за 10 минут
13:01
Николай Тузов — Golang
Рет қаралды 118 М.
GoLang Slice в деталях, простым языком
32:09
Николай Тузов — Golang
Рет қаралды 70 М.
Антон Сергеев, «Go под капотом»
36:37
Kolesa Group
Рет қаралды 87 М.