Модульное тестирование на вашем любимом языке



Модульное тестирование на вашем любимом языке

1 0


UnitTesting

Slides for lecture about Unit Testing

On Github 2heoh / UnitTesting

Модульное тестирование на вашем любимом языке

ifitwasi@gmal.com+SergeyLobin

Содержание:

  • Теория
  • Практика

Хороший модульный тест:

  • Структура ААА ( Arrange -> Act -> Assert )
  • Понятный (coridor test PASSED)
  • Короткий
  • Быстрый
  • Независимый
    • друг от друга
    • окружения
  • Сфокусированный

Шаблоны разработки модульных тестов:

  • Тестовые данные:
    • понятные
    • информативные
    • не противоречивые
  • Изолированные тесты
  • Есть список тестов (TODOшечка)
  • Assert first
  • Тест-пояснение
  • Тест-изучение
  • Регрессионный тест
  • Чистый коммит (Pass rate 100%)
  • Один красный тест
  • Не надо тестировать не тестируемое

Тестируемый дизайн:

Что может быть юнитом?

  • функция
  • класс
  • компонент
  • подсистема
  • система

Покрытие

  • ветви (branches)
  • строки (lines)
  • методы (функции)
  • классы
  • пакеты

Тест-дублеры

  • Stub (заглушка)
  • Fake (имитация сложного поведения)
  • Spy (отслеживание вызова)
  • Mock (test-frameworks, gtest, gmock)

Зацепление (Coupling):

  • Наследование
  • Агрегация
  • Композиция