Skip to content

kontur-courses/testing

Repository files navigation

Тестирование

Это блок о написании правильных и полезных тестов.

Пройдя блок, ты:

  • Узнаешь паттерны создания тестов:
    • каноническую структуру теста AAA
    • правила именования тестов, чтобы они работали как спецификация
  • Познакомишься с антипаттернами, которые приводят к хрупкости, сложности и трудночитаемости
  • Получишь опыт тестирования "черного ящика" и "белого ящика"
  • Поймешь, когда лучше работают тесты, а когда code review
  • Почувствуешь пользу от написания тестов

Необходимые знания

Понадобится знание C#, JS или Java

Самостоятельная подготовка

C#

  1. Познакомься с NUnit, если ещё не знаком, научись подключать его к проекту через nuget
  2. Изучи возможности синтаксиса NUnit по этому примеру или по документации
  3. Научись запускать тесты из Visual Studio с помощью Resharper по инструкции
  4. Изучи возможности синтаксиса FluentAssertions
  5. Установи .NET Framework 4.8.

JS

  1. Познакомься с Mocha, если ещё не знаком, научись подключать его через npm (yarn)
  2. Изучи возможности синтаксиса Mocha, ChaiJS
  3. Научись запускать тесты в терминале (npm test или yarn test), из WebStorm по инструкции или другой любимой JavaScript IDE
  4. Если пока плохо знаком с Node.js и ES6, то начни с Шага 1 этого туторила

Java

  1. Познакомься с Junit, если ещё не знаком, научись его подключать через gradle.
  2. Изучи возможности синтаксиса документация
  3. Научись запускать тесты junit5 в ide.
  4. Изучи возможности синтаксиса assertJ

Python

  1. Познакомься c pytest, если еще не знаком (документация)
  2. Научись запускать тесты из PyCharm по инструкции
  3. Почитай о том, что такое фикстуры в pytest (например, на хабре)
  4. Установи с помощью pip в окружение библиотеки из python/requirements.txt - используй команду pip install -r python/requirements.txt

Очная встреча

~ 3 часа

Закрепление материала

  1. Спецзадание Ретротестирование
    Вспомни одну-две решенные задачи. Какие тесты пригодились бы, если бы решение надо было дополнить или переписать?
  2. Спецзадание Test infection
    Решив задачу по программированию, напиши на нее модульные тесты