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

Как тестирование подразделения Frontend повернулась от протка в реальную вещь для меня

Это история о том, как я, наконец, понял, что я действительно безумно глубоко любите тестирование подразделения, и так, как он улучшает меня, и моя работа как разработчик Frontend. Теги от ненугивания, тестирования, JavaScript, Frestend.

Эта статья изначально от 21 сентября 2017 года . Я перемещаю свой контент из средних до dev.to

Трудно обойти слово ” Тестирование ” Если вы на пути, чтобы стать профессиональным программистом. Конечно, я прочитал об этом и даже проводил несколько часов, написав тесты и решение искусственных проблем с тестируемым развитием. Но у меня не было возможности применить мои приобретенные знания в моем дневном кодировании жизни. Это просто не вещь на моей работе. Мы не пишем тесты (пока я хочу изменить это) и так долго, все, что я знал о тестировании, было больше на академическом уровне.

ПЭТ проекты для спасения!

Мне повезло работать на нескольких домашних животных с опытными программистами. Самое главное, что я учусь из моих этих проектов, новые или разные рабочие процессы, лучшие практики и узоры. В проекте я сейчас работаю над тем, что я наконец написал реальные тесты в реальной среде. Черт, мне было очень весело!

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

С несколькими днями я работаю над текстом о тестировании в Frestend на примере из упомянутого проекта PET. Это помогает мне узнать больше о тестировании. В то же время я пытаюсь создать простой рабочий процесс, чтобы проверить мой код для не тестирующей среды, поэтому я смогу доставить более стабильные решения. Мои новые нашли чувства к тестированию, но я не совсем уверен, если и как они будут работать в моей работе.

Реальный мир догоняет – TIFU

Сегодня я получил ошибный билет. Для простой функции JavaScript я написал несколько месяцев назад. Я видел описание билета, взял один взгляд в код, и я был в ярости у себя. Я мог видеть свою ошибку прямо сейчас И это было глупое.

Фон : Сценарий должен предпринять целое число и вернуть номер, отформатированный в валюте € – точка как тысячи сепаратора при необходимости и «евро» в конце.

Вот как выглядел мой скрипт:

function formatSum(sum) {
  var sumNum = sum.toString().split('');
  var sumFormatted = [];

  for (var i = 0; i < sumNum.length; i++) {
    var currNum = sumNum[i];

    if (i != 0 && i % 3 == 0) {
      sumFormatted.push('.');
    }

    sumFormatted.push(currNum);
  }

  if (sumFormatted.length > 0) {
    sumFormatted.push(' Euro');
  }

  return sumFormatted.join('');
}

Я написал это почти 4 месяца назад и действительно, я не горжусь. Никто не заметил ошибку в течение довольно много времени, потому что функция использовалась для форматирования целых чисел, доставленных API и – совпадает, – все они имели Шесть цифр некоторое время.

  • Моя первая мысль: Черт, ты глуп.
  • Моя вторая мысль: Черт, ты так чертешь глупо, вы только проверили свой скрипт на живом сайте. Вы не правильно проверили свой проклятый код!
  • Моя третья мысль: Хм. Вы умнее сейчас, чем тогда.

Меня и тестирование: становится серьезным

Вот что я сделал, чтобы исправить ошибку: я написал тесты. Я не коснулся сценария, я не изменил ни одной вещи. Я открыл мой редактор и Я написал. F Отказ Тесты. *

function assertEqual(actual, expected) {
  if (expected === actual) {
    console.info('[SUCCESS] Is ' + expected);
  } else {
    console.error('[ERROR] Expected ' + actual + ' to be ' + expected);
  }
}

function tests() {
  console.log('Test results');

  assertEqual(formatSum(1), '1 Euro');
  assertEqual(formatSum(12), '12 Euro');
  assertEqual(formatSum(123), '123 Euro');
  assertEqual(formatSum(1234), '1.234 Euro');
  assertEqual(formatSum(12345), '12.345 Euro');
  assertEqual(formatSum(123456), '123.456 Euro');
  assertEqual(formatSum(1234567), '1.234.567 Euro');
}

Я провел тесты.

Билет на ошибку сообщил о ложном формате с 5-значным номером, а тест воспроизводится это – 123,45 евро вместо 12,345 евро Отказ

Я исправил мой скрипт.

function formatSum(sum) {
  var sumNum = sum.toString().split('').reverse();
  var sumFormatted = [];

 for (var i = 0; i < sumNum.length; i++) {
    var currNum = sumNum[i];

if (i != 0 && i % 3 == 0) {
        sumFormatted.push('.');
    }

sumFormatted.push(currNum);
  }

if (sumFormatted.length > 0) {
    sumFormatted.reverse();
    sumFormatted.push(' Euro');
  }

return sumFormatted.join('');
}

Примечание : Я не трогал его в противном случае. Я не отправил его, я не сделал его лучше, я не сделал это красивее – я только что исправил свою ошибку.

Я снова провел свой тест.

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

То, что я узнал сегодня

  • Мне очень нравится тестирование. Мы, как, серьезно!
  • Там так чертовски много вещей, которые я должен узнать о тестировании, и я действительно с нетерпением жду этого.
  • Мне не нужно ждать кого-либо или что-нибудь, чтобы написать тесты. Да, было бы лучше всего работать с 100% кодами и тестом Alllll Что-то – но даже один маленький тест может улучшить мой код и сделать меня лучшим программным документом в долгосрочной перспективе. И эй, я перфекционист, я стремиюсь к улучшению;)
  • Тестирование не должно быть трудоемким и там дорогим! Напротив: если бы я написал правильные тесты в первую очередь, второй ошибный билет никогда бы не случился.
  • Я пишу лучший код сегодня, чем три месяца назад.
  • Commiting (иногда даже пишущий) код без тестов чувствует себя как вождение без ремень безопасности сейчас.

Обложка Изображение: Фото Cerys Lowe на Бессмысленно

Оригинал: “https://dev.to/programmiri/how-frontend-unit-testing-turned-from-a-fling-to-a-real-thing-for-me-6bk”