Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Тестирование в Go c Ginkgo и Gomega - Александр...

Тестирование в Go c Ginkgo и Gomega - Александр Егурнов

Avatar for GopherCon Russia

GopherCon Russia

April 23, 2021
Tweet

More Decks by GopherCon Russia

Other Decks in Programming

Transcript

  1. План Тестирование кода на Go Какие варианты? Как выбирать? Обзор

    Ginkgo & Gomega Интересные особенности Типичные ошибки Опыт использования 4
  2. Опрос Как часто вы пишете тесты? Никогда Время от времени

    Каждый день Какие проблемы возникают при написании тестов? Нет проблем Не царская работа - тесты писать Read-only тесты: пишутся однажды и больше не меняются Хрупкие тесты: меняешь одну строчку кода - ломаются 40 разных тестов Слишком живучие тесты: код сломан, тесты нет Медленные тесты Другое: в чат 6
  3. testify + Дополняет testing + Обширный API + Setup/teardown -

    suite + Mocking - mock ? Удобство API - Ограниченная расширяемость 14
  4. Ginkgo & Gomega + Структура + Setup / teardown +

    Мощный DSL + Естественной язык + Расширяемость - Сложность 17
  5. Когда? Становится сложно читать сложно писать неудобно менять Разрастается обвязка

    - testing harness построение / очистка тестового окружения проверки, валидации API клиенты 19
  6. DRY vs DAMP DRY - Don’t Repeat Yourself DAMP -

    Descriptive And Meaningful Phrases 22
  7. Пирамида тестирования End2End - весь продукт, blackbox Integration - несколько

    связанных частей Unit - одна функция или структура Адаптировано из martinfowler.com - The Practical Test Pyramid (https://martinfowler.com/articles/practical-test-pyramid.html) 25
  8. Что это? Ginkgo Фреймворк задает структуру контролирует твой код https://onsi.github.io/ginkgo/

    (https://onsi.github.io/ginkgo/) Gomega Библиотека ассертов помогает делать утверждения контролируется твоим кодом http://onsi.github.io/gomega/ (http://onsi.github.io/gomega/) 27
  9. Заключение Пишите тесты Пишите разные тесты Выбирайте инструмент под задачу

    Начинайте со сломанного теста Не увлекайтесь усложнением, ищите баланс 59