Это руководство поможет вам начать Tтестировать Dразрывную Dразработку (TDD) сегодня с JavaScript.

Почему ТДД?

Проекты без теста выглядят как набор вещей, склеенных вместе.

Проекты, полностью покрытые тестами, создают совершенно другой уровень уверенности в вашей кодовой базе.

Никогда больше не ломайте свой код при реализации новых функций.

Что такое ТДД?

TDD — это разработка через тестирование. Вот и все! Мы разработали наше программное обеспечение на основе тестов, написанных до нашего производственного кода!

Это один из способов продумать свои требования или дизайн, прежде чем писать функциональный код.

При чтении о TDD вы увидите 3 этапа: «Красный, зеленый, рефакторинг».

Подход «красный, зеленый, рефакторинг» помогает разработчикам разделить свое внимание на три этапа:

  • Красный — подумайте, что вы хотите разработать.
  • Зеленый — подумайте, как сделать так, чтобы ваши тесты прошли успешно.
  • Рефакторинг — подумайте, как улучшить существующую реализацию.

Практика

Приложение с одним файлом

Мы можем собрать весь «проект» в один файл для простоты, создав файл с именем index.html.

В нашем случае мы используем библиотеку QUnit для проведения тестов.

Откройте index.html в своем браузере, и вы увидите результат тестов:

Расчленить тесты

Написание тестовых утверждений состоит из трех частей:

Описание — обычно первый параметр метода QUnit test().

Предоставляет описание для нашего теста, что он будет делать?

 QUnit.test(‘This sample test should always pass!’, 

Вычисление — выполнить функцию/метод.

Мы получаем assert в функции, которая используется для проверки информации. Основываясь на утверждениях, мы получим результат нашего теста как неудачный или успешный.

function(assert) {
 let result = 1 + 1;

Утверждение — убедитесь, что результат ваших вычислений соответствует вашим ожиданиям.

Проверяем, равен ли результат 2, в этом случае да, тогда тест пройден.

 assert.equal(result, 2);
});

Зная это, мы начнем разрабатывать наши тесты на основе заданного сценария.

Сценарий: вызов FizzBuzz

Введите библиотеку, которая получает число и:

Если число делится на 3, вернуть 'Fizz',
Если число делится на 5, вернуть 'Buzz',
Если число делится на 3 и 5, вернуть 'FizzBuzz',< br /> Если не кратно ничему, вернуть число.

Шаг первый: ваш тест должен быть написан так, чтобы он провалился

Да, все тесты потерпят неудачу, цель этого первого шага — создать наши тесты, которые будут служить спецификацией для следующих методов.

Шаг второй: пройдите тест

Наша цель сейчас — создать функцию, отвечающую требованиям, заданным тестами, она будет получать в качестве параметра число и возвращать что-то согласно тому, что было указано ранее.

Шаг третий: рефакторинг вашего кода

На этом этапе мы собираемся более подробно рассмотреть тот код, который мы только что создали для нашего тестового прохода.

Именно в этот момент мы удаляем дублирование, переименовываем переменные, извлекаем методы, извлекаем классы, извлекаем интерфейсы, используем какой-то известный шаблон и т. д. Именно в этот момент мы можем оставить наш код простым и понятным.

Мы сделали функцию, на 100% покрытую тестами, очень хорошо 😃

Вывод

Это только начало о TDD, я надеюсь, что это было полезно, чтобы дать вам первое представление о силе этой парадигмы, весь проект здесь, не стесняйтесь 👏 и помогите другим найти.

использованная литература

Разработка через тестирование: на примере, Кент Бек

Изучай TDD, двил