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

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

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

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