Рубрики
Без рубрики

Переместитесь быстро и не разбивайте вещи

Guido Schmitz Red Light, зеленый свет, рефакторист – тестовое развитие на три шага двигаться быстро а также Не ломайте вещами в Intro, чтобы проверить управляемое развитие, когда я начал писать код, я никогда не писал какие-либо тесты. Я предположил, что мой код не содержит никаких ошибок. Я своего рода понял, что все

Гвидо Шмице

Введение для проверки тестирования

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

Мальчик, я не прав.

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

Вскоре я тревожен, когда добавив новый код в мою кодовую базу, думая, что моя следующая строка кода может быть той, которая приносит все приложение, сбивающее вниз.

Вот когда я обнаружил тестовое развитие (TDD).

TDD – это методология, которая может повысить вашу уверенность при доставке новых функций. Это делает вас менее вероятным сломать ваше приложение.

Когда начиная с TDD есть три простых правила Вы должны следовать:

  1. Напишите неудачный тест, прежде чем писать любой производственный код
  2. Напишите один тест одновременно и убедитесь, что он не удается, прежде чем двигаться дальше
  3. Не пишите еще более производственный код, чем нужно сделать В настоящее время неудачный тестовый проход

Тогда вы можете войти и рефакторизоровать код производства, который вы написали.

Этот процесс в целом часто называют красным светом (неспособным тестом) -> зеленый свет (пропускной тест) -> Refactor

Пожинает преимущества

После этих трех правил TDD может помочь вам с:

  • Отладка. Представьте себе работу над проектом, где вы Никогда В конечном итоге с несколькими модулями порваны к клочкам, надеясь, что вы можете как-то потянуть их друг на друга сроком.
  • Храбрость. Если у вас есть красивый дизайн и архитектура, но нет тестов, вы все еще боитесь изменить код. В то же время, если у вас есть широкий набор тестов, вы можете вернуться и безопасно рефакторировать код поддона.
  • Документация. Агрегатные тесты подобны примерам кода. Когда вы хотите знать, как позвонить в метод, у вас будут тесты удобные, которые вызывают этот метод каждый способ его можно назвать, и они не могут выйти из синхронизации с вашим производственным кодом.
  • Дизайн. Каждый модуль будет Жильчик по определению. И другое слово для Жильчик это отделен Отказ Для того, чтобы сначала написать тесты, вы должны разделить подразделения, которые вы тестируете из остальной части системы. Эта практика бесценно.
  • Профессионализм. Учитывая, что эти преимущества реальны, нижняя строка заключается в том, что это было бы непрофессиональный не принимать практику, которая уступает их.

Структурирование ваших тестов

Каждый тест должен следовать структуре, подобную этой:

  • Настраивать: Издеваться над функцией или добавление рядов в вашу базу данных
  • Выполнить: Вызов метода, который вы хотите проверить
  • Утверждать: Проверка того, что ваши результаты верны
  • Обзор: Очистка модифицированных записей базы данных или издеватели предметов

Если вы хотите узнать больше о тестовой структуре, вот отличное чтение, которое покажет вам несколько лучших (и худших) практик для написания модульных тестов:

Написание отличных модулей тестов: Лучшие и худшие практики В чем разница между хорошим тестом на единицу и плохой? Как узнать, как писать хорошие тесты подразделения? Это далеко … blog.stevensanderson.com

Подходящая TDD в ваш рабочий процесс

Позвольте мне взять вас через пример того, что это может выглядеть с настоящим мировым пошаговым примером TDD.

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

@(ID пользователя)

Теперь, когда у нас есть простой случай, мы напишем тест для него. Я буду использовать JavaScript Лента Тестовые рамки в этом примере, потому что это относительно легко использовать:

Я создал файл под названием Parse-mail – Text.js Это возвращает «ОК».

Красный свет

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

Хороший. Когда тест не удается, мы можем быть уверены, что функциональность не работает, когда мы начали.

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

Зеленый свет

После того, как наш тест не удался, мы должны сделать этот тест с минимальным кодом:

Чтобы проверить, соответствует ли наша реализация наши требования, мы должны снова запустить тест:

Рефакторист

Большой! Все работает так, как мы хотим. Теперь пришло время убирать код и сделать его красивее и более читаемым:

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

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

Хотите узнать больше о разработке тестов?

Если вы используете RiveDJS, я также написал сообщение о тестировании ваших компонентов React, которые вы можете просматривать здесь .

Я отправляю интересные статьи о JavaScript & Reactjs каждую неделю. Вы можете подписаться здесь, чтобы получить бесплатное знание JavaScript Отказ

Ох, и нажмите на? Ниже так другие люди увидят эту статью здесь на среднем. Спасибо за прочтение.

Оригинал: “https://www.freecodecamp.org/news/how-test-driven-development-increased-my-confidence-of-shipping-new-code-without-breaking-things-a759a570bd95/”