Press "Enter" to skip to content

Unit testing in JavaScript Part 2 — Your first tests


хорошее утро в понедельник сегодня мы
продолжение нашего путешествия по модульному тестированию
в JavaScript в последнем эпизоде, который
вы можете найти в описании эпизода
мы выяснили, почему после модульного тестирования
и почему необходимо сохранить сложность
наш код от подавляющего нас сегодня
хотя мы собираемся сосредоточиться немного
немного больше о том, что такое модульное тестирование и как
это помогает с управлением сложностью
Я пустой J’s, и вы смотрите весело
функция
[Музыка]
[Музыка]
На прошлой неделе мы писали некоторые общий код заказ
общий объем заказа порядка функций
функция, которая взяла часть данных и
порядок и захватили все предметы в
упорядочить и обобщить их для нас в
в общем количестве заказов сегодня мы собираемся
напишите эту же функцию, но мы
вместо этого собирается сделать это с помощью теста первого
Подход , который я также хочу заявить для
что сегодня я чрезвычайно устал
это лишь один из тех дней, когда
кофеин не работает, давайте сделаем некоторые
кодирования и посмотреть, можем ли мы получить некоторые
энергии сегодня все здесь, на первом
здесь в строке 1 мы называем общий заказ
с порядком любой признает этот образец
данные последнего последнего эпизода и здесь
мы проверяем, является ли общая сумма заказа
вернулся из заказов, все не 808 мы
сбросить проверку ошибки с помощью счастливой части
здесь я имею в виду, что они в основном имеют дело
стандартный случай, когда все идет
ну нет странных краевых случаев или
все это просто главное
что функция должна делать
хорошо, поэтому здесь нет реального кода
или тотальная здесь еще не существует , мы
сначала написал тест, я могу быть
адвоката дьявола и спросить, почему мы
делая это таким образом, почему мы пишем
сначала протестируйте вместо написания кода
сначала, а затем добавить тест позже
а самое большое преимущество при тестировании
для меня первое, что это помогает
что я на самом деле пишу
тесты вообще я нахожу, что если я начну
добавление тестов после того, как я написал код
когда я пытаюсь сделать это, я склоняюсь к
это и причина, по которой я ослабляю
заключается в том, что писать тесты сложнее
впоследствии, чем раньше, и причина
почему это сложнее, что это трудно
выяснить, какие тесты правильны
хорошо, можете ли вы привести пример в порядке
может быть , вы можете , возможно , может дать
пример того, что все в порядке, давайте посмотрим
в коде из последнего эпизода, как
как увеличить масштабирование размера шрифта
увеличить фантастическими хорошо , так это это
только восемь строк кода, но даже просто
на восьми линиях мы уже имеем несколько
использования в коде, и теперь, поскольку мы
не добавляли тесты, пока мы были
пишу их, у меня должно быть два сейчас
после факта анализа кода и т.п.
археология — все в порядке, но это
действительно все, что трудно нет, это не так
а не ракетной хирургии, но это
это занятая работа, которую мы можем избежать
тесты после того, как факт мне подобен
добавление лишней археологии
шаг, на котором мы пытаемся извлечь
наш собственный код, если я попытаюсь сделать аналогию
и это аналогия, поэтому она не идеальна
но это немного напоминает, если давайте
скажем, что мы были шеф-поваром, и мы были
изобретая новый рецепт, мы были просто
играя вокруг и добавляя вещи к
суп и в конце концов, как суп
получилось очень хорошо, и когда мы, когда
тогда пришло время написать рецепт
вниз, чтобы не повара могли это сделать и
поскольку мы на самом деле не
ингредиенты, которые мы вкладываем в суп, мы сейчас
должны понравиться
Хммм смотреть в суп и как
после чего попытайтесь выяснить , какие
ингредиенты, которые мы вкладываем туда, как тыкать
вокруг него
и это будет такая работа, которую мы могли бы
пропустите ингредиент там и, возможно,
немного больше времени , но он будет работать
но мне кажется, что это было бы
было более разумным делать заметки о том, что
мы добавили к супу, как мы это сделали, что
мне кажется более эффективным и надежным
хорошо справедливо
давайте вернемся к исходному коду в порядке
сегодня мы делаем тест, который
означает, что мы пишем только код, когда
существует тест, требующий, чтобы код
есть mmm Я думаю, что я немного шепчу
сегодня так в этом случае мы видим, что
количество заказов не существует , это очень
очевидная проблема одна часть об устройстве
тестирование заключается в том, что вы постоянно пытаетесь
ставьте себя в такие ситуации, когда
Следующий шаг становится очевидным , все в порядке
теперь порядок функций полностью в порядке
сбой по другой причине
это хороший прогресс снова модульное тестирование
заключается в том, чтобы сделать эти маленькие
постепенные шаги по достижению
цель мы создаем эту очень приятную обратную связь
петля для нашей работы это почти немного
бит похож на игру, в которой ты мне нравишься
когда вы прыгаете на такого врага,
вы удовлетворительная группа, когда вам нравится
Goomba уходит, эй кости
и теперь, как выйти на новый уровень в
видеоигра у нас есть новая задача, которая
что эта проверка здесь не позволяет
счастливый путь проверка не удалась , потому что это
не один восьмой восьмой, потому что это
возвращает пустую функцию
undefined, так что давайте вспомним, что
когда мы делаем тесты в первую очередь
мы стараемся всегда писать только код, который
необходимых для прохождения теста
первый импульс здесь может заключаться в том, чтобы начать
написать письмо и уменьшить как заказ
предметы уменьшаются, но на самом деле это не
что требуют тесты, если мы
действительно строго о правиле только
написание кода, который требует тестов, мы могли бы
вернуть курс и проверить успешность
что, черт возьми, что это такое
чувствует себя так неинтуитивно для меня да
это если вы сначала протестируете книгу
и действительно довести его до логического
заключение это то, что вы, что вы заканчиваете
с , как это очень распространенная
Ситуация странно ты странно все в порядке
поэтому вам действительно нужно объяснить это мне
что у нас сейчас проходит тест
но код явно ошибочен.
мы, как мы исходим отсюда все в порядке
поэтому существует три разных подхода
что вы можете взять, когда пишете
прежде всего, вы можете использовать очевидные
реализация подделывает его, пока вы его не сделаете
или триангуляции, и эти методы
они идут от православных к большему холоду
давайте поговорим о триангуляции в первую очередь
потому что это самый консервативный
способ проведения тестовой разработки
хорошо триангуляция, что это значит
именно то, что это триангуляция, что
что вы делаете с точками на карте и
вы выясните, где что-то основано
на три очка, да, именно это
откуда взялось название, и это добро
сходный в в модульном тестировании , потому что
часто вы оказываетесь в этом
ситуация, когда один тест не совсем
достаточно для реализации реализации
так что давайте фактически напишем еще один тест, который я
просто собираюсь скопировать это, и я пойду
сделать, как перетащить звонящего, и я собираюсь
установить эту цену до 20
мы собираемся сделать игрушку для драконов, и я
собираюсь установить эту цену на 4G, возможно, и
Я назову это дело счастливым путем —
и я собираюсь назвать это, возможно,
example1 example2, и это предполагается
быть 60 Я занимаюсь математикой в голове
и теперь у нас есть этот второй тест здесь
это не позволяет нам
на самом деле нужно написать код
Давайте сделаем это
вы получаете это с целым
красно-зеленый цикл продолжается в тесте
приводится в тесте первое , что вы о его
красный, и ты печалься, а потом пишешь
некоторый код, а затем вы получаете экран и
вы снова радуетесь, а затем краснеете, а вы
грусти и да, они получают его также
Я хотел бы заявить о записи
что это действительно странно
Я думаю, что понимаю, хотя вижу
значение, где триангуляция да II
думайте, что это чувствует себя в безопасности, он чувствует, что это
потому что кажется, что трудно сделать
ошибки с этим, и это также имеет
качество делает очевидным, что делать
точно добраться до зелени любой ценой просто
сосредоточьтесь на том, какой код нужно писать в
чтобы пройти тест, а затем
посмотрите на код и попытайтесь выяснить
что нам нужно добавить, а затем
добавьте тест для этого, а затем цикл
снова снова красный зеленый красный зеленый красный
зеленый, но я хотел бы подчеркнуть
что триангуляция — не единственный способ
делать испытание первым , мы могли бы также иметь
пошел сразу на очевидное
когда у нас был первый
тест и просто написал это
уменьшите функцию, потому что это
все еще очевидно, что это то, что
мы идем, чтобы мы могли взять
средняя дорога, которая подделывает его до вас
сделай это, и это отчасти да
между тем, что бы мы сделали
мы должны были бы
по-прежнему получили зеленый цвет так же быстро
насколько возможно, просто написав
жестко закодированное значение в 808, но тогда мы
немедленно заменил бы его
с фактической реализацией так
вы вроде как это нечто среднее между
все из них — абсолютно первые тесты
методы
но они разные
разные в своей православной Несе, если вы
новичок, может быть неплохо вставить
с триангуляцией на некоторое время
потому что это самый простой из них
тот, который наиболее чист, чтобы проверить сначала
и это будет тот метод, который
дает вам возможность испытать тесты сначала, как
что-то интегрировать в ваш рабочий процесс
и тогда, как только вы получите это
может начать как сбрасывать в них больше
расслабленные подходы иногда хорошо
что первоначальное ощущение странности умерло
вниз, я думаю, что-то вроде
триангуляция, хотя эмоционально
концептуально я вижу, что это немного
медленнее работать с немного медленнее
бит более спокойно, но он имеет
это огромное преимущество дает мне
очевидный путь вперед все время, что
кажется мне очень успокаивающим , я вижу
я сам прыгал между ними
но возвращаясь к триангуляции на
дней, когда у меня сложнее
проблемы или, возможно, в некоторые дни, когда я
вы знаете, что чувствуете себя немного ленивым или
да, просто на следующий день, и у меня есть
твердое мышление, затем триангуляция
мог бы отвлечь меня от этого
длинные мысли прыгают в моей голове и просто
держите меня сосредоточенным на красном зеленом красном
зеленый красный зеленый петля в порядке давайте давайте
добавьте еще один тест , давайте добавим наш
поддержка количества
[Музыка]
[Аплодисменты]
все в порядке, поэтому этот тест, который мы просто
написал тест количества количества в настоящее время
работает, потому что мы добавили код для этого
однако эти тесты здесь у них есть
не удалось , и это не удалось, а мы
просто не вижу этого, потому что это течет
сначала, но это также
терпеть неудачу, потому что у этих вещей нет
количество в них и наш код теперь ожидают
это мы , мы сделали нарушение изменения
хорошо, да, я понимаю, почему у нас есть мы
изменили API нашего кода, и мы
есть тесты для проверки того, что API
что означает, что теперь нам нужно изменить
все наши тесты, которые я чувствую, это
нам нужна дополнительная работа, фиксирующая эти тесты и
это похоже на работу, которая не существовала бы
если мы не имели место модульного тестирования
ах это вроде как правильно, но ты
также вид своего рода неправильного вам нужно
иметь немного воображения в этом
в частном случае это в основном как дополнительная
но это верно только потому, что мы
еще нет внешнего кода, который
используя наш заказ всего нашего теста
так как мы фактически сделали
измените на
API уже общего, если сумма заказа была
как в библиотеке, которая использовалась
тысячами пользователей, которых вы не могли сделать
изменение , как это , не делая подобно
главная версия и объявить ее
всех пользователей, поскольку они могут иметь
код, который зависит от того, что API следует
определенный контракт, и именно это подразделение
тесты подтверждают, что если или общее количество было
в течение некоторого времени, прежде чем мы добавили
количество поддержки, то это единичный тест
поломка здесь
подчеркнула очень реальную проблему, которую вы знаете
что я имею в виду
изменить эти два примера кода
эти два теста здесь и просто добавьте
количество одного для них, но я думаю, что мы
должен делать вид, что код в
система потребляет это и, возможно,
даже код третьей стороной в в другом
библиотеки, потому что это не
необоснованно думать, что что-то
как общее количество заказов может быть очень полезным
для многих систем и что вы можете захотеть
изменить эту логику или свою долю этого
логика жаль, поэтому давайте действительно убедиться
что оба дела работают, поэтому я собираюсь согреться
вверх мое количество 0 там эта работа I
думаю, что я должен положить это в родителей о
нет, это не может быть сирийцы, чтобы быть 1 и
да, теперь это работает, наблюдая этот код
похоже, что мы выпекаем немного
сейчас в примерах счастливых путей
похоже, что это не
проверяя счастливый путь, теперь они
тестирование счастливого пути и отсутствие недостатка
или количество или недостаток количества
так что я на самом деле собираюсь сделать это
Я собираюсь создать преданный счастливый
путь
[Музыка]
теперь, когда у нас есть эта проверка на отсутствие
количество, которое мы можем безопасно продлить
эти примеры счастливого пути на самом деле
сфокусированы на том, что вы знаете счастливый путь
так как вы видите здесь, мы проводим тесты
очень мала и сосредоточена только на одном
поэтому вы видите здесь, что этот тест для
Например, есть много вещей, которые
этот тест не тестирует, он не проверяет
он имеет только один элемент, так что это не
связанных со многими предметами, и это
также проверяет только единственную величину
случай, например, не имеет количества, например
подразумеваемый случай количества , который
только для этого теста
с тем, что испытать счастливую часть теста
это случается, чтобы проверить немного больше, но
эти тесты или если я использую счастливую часть
прежде всего, чтобы заставить меня собираться
начался и счастливый путь, это нормально, что
тесты немного больше, чем одна вещь
но общее тестирование устройства означает
как для всего как единицы, которую мы можем
тест в изоляции , это один из способов
интерпретации единичного слова в блоке
но также важно, чтобы
каждый тест — это единица, которая ему не нравится
контрольная работа
hagh тонны кода в стандартных тонах
в одном тесте, которое становится действительно
действительно трудно справиться с
когда несколько вещей начинают ломать
гораздо приятнее иметь каждый
каждый блок тестов быть , это будет блок в
этот эпизод я также сосредоточено много на
польза от привычки, которая имеет
или тест-ориентированной разработки или тестирования
имеет дело со сложностью, но я
хочу сделать здесь сеге, а также отметить
этот модульный тест также работает как
канал связи действительно хорош
канал связи к вашему будущему
я или ваш коллега, потому что
эти тесты в основном удваиваются как очень
конкретный и очень хороший исполняемый файл
документация для кода нормального
документация, с которой вы знаете примеры и
материал, который тоже очень приятный, но единица
очень похож на очень хорошее дополнение
к нормальной документации, поскольку они получают
действительно в ничтожестве, как
точно функция работает нормально, так что
о вас знают испытательные бегуны, которые я слышал
о мокке и шутке и жасмине и
как бы мы их здесь не использовали
мы только что сделали это очень
ручная закодированная ручная проверка да я
фактически избегали введения теста
бегун на этом этапе, потому что я хочу
вы как зритель, чтобы узнать как мало вещей
насколько это возможно в то же время, если мы
ввести тест-бегун, который у вас будет
выучить тест-бегун, а также
изучение основных принципов тестирования
сначала и модульное тестирование, и он просто чувствует
как мы можем представить вещи
последовательно, но тестовые бегуны — это то, что мы
собираются поговорить в следующем
эпизод, который подводит меня к тому, что у вас есть
просто смотрел эпизод на функцию I
действительно когда-либо
О 800 GMT, если вы смотрите с
будущее вы можете проверить на следующей неделе
салют иначе подписаться здесь, чтобы
вы не пропустите это
если вы забыли, вы также можете
по уведомлениям
Я — МЮ до следующего утра в понедельник, спасибо
вы
Please follow and like us:

Be First to Comment

Добавить комментарий