
В понедельник утром в последнем эпизоде мы
наш ванильный JavaScript- тест
набор для использования тестового бегуна Jes вместо
в этом видео мы собираемся сделать некоторые
дополнение к нашему фактическому коду
код и добавить некоторый код , что
синхронно извлекает данные из сети
службы, и для этого мы
собирается высмеять этот вызов, что означает, что
Сегодняшний эпизод — насмешка над мной и
mpj, и вы смотрите веселую забаву
функция
[Музыка]
[Музыка]
[Музыка]
хорошо, если вы обычный зритель
вы можете заметить, что я в новом месте
это моя новая студия пространство,
предназначенный для веселой забавной функции
нет я, я не сделал никакого звука или
ничего из этого пространства, но я просто
прибыл вчера, и именно поэтому
столько эха, которое будет исправлено в
ближайшие видео, а также не слишком
захватывающее, возможно, придется что-то сделать
об этом, а также я не уверен
об угле или что — нибудь на самом деле это
буду захватывающе Я собираюсь сделать это
бит более уютный, а затем, вероятно,
полная студийная экскурсия по этому пространству Я
супер взволнован, он чувствует себя действительно
хорошо иметь как вероятное место работы
пойти и да , это будет здорово
в любом случае сегодня мы собираемся изучить MOC
функции
Функции MOC — это поддельные функции, которые мы
использовать вместо реальной сети или
вызов базы данных или, возможно, не вызов
к API платежей в наших тестах мы делаем это
потому что нам нужно запустить модульные тесты и
другие автоматизированные тесты в целом
сотни и сотни и сотни
раз, и нам нужно запускать их очень быстро
поэтому в некоторых случаях это просто невозможно
использовать реальный платеж err real API для
пример, как мы можем сделать 200 тестов
операции с кредитными картами и даже если
они дают нам тест API мы были
как было бы очень медленно поддерживать
делает реальную сеть называет все время
потому что, если вы запустили модульное тестирование
люкс обычно имеет четыре-семь
сто тестов , и вы хотите , чтобы иметь возможность
запускать эти и в считанные минуты или предпочтительно
секунд, и если вы только что участвовали
задействовать сетевые вызовы и что да
становится полностью неосуществимой и Сеть
звонки имеют тенденцию к сбою
в другое время, что означает, что
тестовый набор заканчивается хрупким и
как вы запускаете 400 тысяч
один почувствовал там , и вы бежите за
сундук, и одно испытание терпит неудачу там, и это
просто да, макет функции возвращает подделку
значения и макетные функции также позволяют нам
осмотреть макетную функцию после того, как мы
завершил проверку, чтобы мы
может проверить, что функция макета была
так, как мы ожидали,
так давайте посмотрим на проблему
что нам нужно, чтобы Маркс решил все правильно
здесь у нас есть наш старый друг из
последние эпизоды нашей общей функции заказа
позвольте мне добавить разрыв строки здесь да
потому что это лучше при работе с
системы электронной коммерции, с которыми нам нужно иметь дело
налогового права, и в Европе мы имеем это
вещь называется налог на добавленную стоимость, который
вид аналогичного налога с продаж в
США и сложность этого
что, когда вы продаете человеку в
другой стране ЕС, которую вы должны взимать
их налог с продаж , это
налог на добавленную стоимость, который применяется в
их стране, поэтому, если вы продаете
Германии вам нужно будет взимать 19 процентов
налог и зарегистрируйтесь , и вам нужно, если
вы продаете кому-то в Великобритании, вам нужно
продавать их продавать их на 20%
пока они не выйдут из Европейского союза, где
брексит, чтобы эти ставки менялись
вокруг них они не стабильны для всех
вечность, так что да, мы не можем просто тяжело
закодируйте их и надейтесь, что они никогда
к счастью, есть некоторые
услуги, которые обрабатывают это для нас, такие как
услугу, которую мы собираемся использовать
которые сегодня является то , что API доткомов очень
первое, что я хотел бы сделать
прежде чем делать какие-либо кодировки, необходимо
немного ознакомьтесь с этим
API Я всегда хотел сделать это очень
Первое, когда я подвергаюсь воздействию новых
API, так что мы собираемся позвонить
НДС API полностью изолирован от всех
наш другой код и
общая сумма и все эти проблемы и проверка
это отдельно я расскажу о
почему мы делаем это так в немного
но пока мы не будем прыгать
впереди в тестах кодирования или кода мы
посмотрим на API в порядке, поэтому давайте
взгляните здесь на этот API-интерфейс dot-com и
если мы посмотрим здесь, и здесь они перечислили
как примеры различных вызовов API, мы
намерены использовать эту страну
поиск кода и вот некоторые PHP, но
то , что нас интересуют здесь , в этом
Ответ JSON, который мы получаем, поэтому он собирается
быть статус вы собираетесь получить вид
код бла-бла-бла- бла, и вот это
это значение, которое нас интересует
поэтому из Люксембурга в Люксембурге мы имеем
действительный это 70% вита, поэтому он находится под
Существует нет есть объект ставки
который содержит наш хорошо она содержит
стандартного стандартного объекта, который, в свою очередь,
содержит значение , а затем она содержит
куча других
уменьшено и alt и супер супер уменьшено
oh для электронных книг у них есть более низкая батарея
электронные книги очень интересны в любом случае
это тот, который нам интересен, так что
давайте создадим новую файловую песочницу
Сохранить, и я собираюсь начать использовать
эта вещь называется Quokka
что очень удобно — это плагин
сделать встроенную оценку JavaScript
и мне очень приятно, когда ты
играя с кодом, а также
делать эти видео очень приятно просто
играя с вещами, поэтому сначала
мы будем нуждаться в том, чтобы это
старой среды, поэтому нам не нужны недостатки
иначе у нас не будет доступа к выборке
и давайте посмотрим, давайте сделаем уголь, не получим
держись, я хорош
положите это в результате и соль, это не
штраф, конечно, и давайте сделаем выборку
и нам нужно, и давайте вернемся к
Что ты делаешь, это конец?
вы знаете, позвольте мне украсть эту копию
вставить пасту, что в этом PHP мы не
хочу PHP, пока я просто собираюсь использовать
de для этого Deutschland или Германии так
далеко мы имеем некоторый результат здесь, давайте посмотрим
посмотрим, что это такое, потому что мы хотим
ответ dot txt все в порядке, круто
требуется статус для аутентификации a-1
mmm вернемся к документам
API, и нам нужна часть заголовка
мм гм
API-ключ в порядке, поэтому нам нужно сделать это
нужен храм, который заголовок местоположения как
хорошо, если я ключу, я думаю, что здесь они
на самом деле использовать заглавные буквы a, и я
знать, что согласно HTTP
стандартная точка или H лучше, да
должны быть эти, они должны быть
дела — это забавный факт, если вы строите
API, как я уже сказал
эта вещь в моих переменных окружения
так делать , и я думаю , что я положил его в качестве
Ключ API факт
Бог там, это так ,
вы не видите мой ключ API, но если
вы делаете это сами, вы можете просто
вставьте свой ключ API здесь, чтобы вы
генерировать на API VAT, действительно вызывает вызов
это помогает нам , мы все равно не получаем
требуется аутентификация uh-huh oh wait
Я не на самом деле, я просто передаю это
в качестве варианта, если я действительно должен сказать
рыбы, что это все это заголовок
извините, я все время полагаю, что вы
хорошо, вы достигли предела API
призывает к вашему бла-бла-бла-бла-бла
позвольте мне войти в лучший API, чтобы прийти и
покупайте больше кредитов, потому что я сделал
это много раз репетирует это и
У меня закончились кредиты, которые у меня есть сейчас
заплатил больше вызовов API, я сделал так много парней
звонки при тестировании этого у нас есть некоторые
здесь все в порядке, теперь это 200 статус
код страны ee alright nice
где весят по своим ставкам, что мы
глядя на меня, дайте мне силы, как JSON
вместо этого Джейсон , а затем я собираюсь
см., что данные показывают , что
которые дают нам прийти
хорошо, и тогда у нас есть стандарт здесь
давайте посмотрим стандарт скорости передачи данных, посмотрим, что это
дает нам правильную сеть значение объекта 19 и
поэтому мы просто извлекаем значение, а затем мы
есть то, что мы хотим, так что это
в основном вызов, который нам нужен для нашего кода
чтобы все было в порядке, позвольте мне немного поговорить
почему мы сделали эту белую игру вокруг
и изучить API отдельно и
потому что когда я был молодым программистом
Я бы просто начал писать код
очень быстро я был очень большой целью
ориентированных и ориентированных на решения и
как я хотел начать писать код
прямо сейчас, поэтому я просто хотел бы начать
запись выборки в порядок
здесь, но со временем я узнал, что это
стоило мне тоже, я имел в виду, что мне пришлось
справиться с несколькими проблемами в моей голове
в то же время мне приходилось сталкиваться с тем, что у меня было
иметь дело с проблемой выяснить ,
API и интеграция API в мой
существующей логики, а также
одновременно решать эти проблемы
как правило, приводит к тому, что я делаю больше
ошибки и более медленное движение в целом
и это было особенно актуально, если в дни
когда я не был на вершине своей игры, я
устал или мне было грустно от чего-то
что произошло в моей личной жизни
в конечном итоге, как моя производительность
в конечном итоге быть очень ненадежны его
иногда работаю, но иногда я просто получаю
застрял, и я делаю код очень медленно и
и код, который я производил, также был
больше подвержено ошибкам, и после того, как я увидел это
проблема II сделала то, что улучшилось
я много как программа, и это было
начинают искать возможности, где
там есть две проблемы или
больше запекается в одну большую проблему и
ищу возможность, возможно, мы
может нарушить эти проблемы в
меньшие изолированные проблемы и
их отдельно и один очень конкретный
Например, это то, что мы делаем здесь
будет работать , что мы сделали здесь , чтобы получить
немного милый милочка с API первой
прежде чем использовать его в вашем коде хорошо так
вернемся к нашим испытаниям в серии
мы сначала пишем наши модульные тесты
прежде чем писать код и причину
почему мы делаем это
что я нахожу по крайней мере, что это много
легче выяснить , какие тесты писать
если вы сначала пишете тесты, когда я
попытайтесь написать тесты после того, как я написал
код. Я часто пытаюсь
какие тесты должны быть написаны
хорошо, так что сначала мы говорили, что у нас есть
говорили о том, почему это хорошая идея, но я
все еще есть проблема с этим, потому что
как вы делаете, как вы думаете, в
сначала тесты, потому что это
написав тест, прежде чем код почувствует
как обратный взгляд на меня, как вы
как вы это делаете ,
обратное мышление да да точно я
чувствую, что этот письменный тест сначала не
к чему я привык, и поэтому он
мне неудобно , это для меня новый способ
думать и думать, что мне нужно
держать за руку
о том , как это сделать , что это то , что те
отличные моменты, если вы не знаете, что я
как я стою на этом балансе
это похоже, что это фантастика, потому что это
заставляет меня думать ясно, но это также
иногда немного шаткий в любом случае
ключ заключается в том, чтобы вместо этого или думать в терминах
от того, что компьютер выполняет , вы
подумайте о примерах, а не о том, что
исполнители компьютеров считают примеры вызовов
поэтому вместо того, чтобы думать в терминах кода
общего объема заказа, о котором мы думаем в терминах
примеров того, как вызывать общее количество заказов
и когда вы думаете об этом, что в
общий довольно хороший способ описания
как что-то работает с рядом примеров
если вы когда-либо читали правила настольной игры
это становится очень очевидным.
правила без каких-либо примеров
становится очень трудно разобрать из-за
что это очень часто для хорошей доски
правила игры
серия примеров рядом с каждым набором правил
объяснить, как конкретные случаи того, как
это правило может применяться, а иногда
Я даже включаю целые сеансы игры, поэтому
что вы можете понять, как игра
работает
код по крайней мере для меня да это очень
подобно тому , как функция вы
знать 10 или 30 строк длиной, возможно, ветку
несколькими заявлениями здесь и там
то мне трудно понять все
нюансы его, если есть единица
тесты для этой функции, показывающие пару
тестов, что значительно облегчает
для меня синтаксический анализ, так что эти тесты здесь вы
могут рассматривать их как примеры, показывающие
как мы, как общий порядок заказов, или как мы
хотите, чтобы общая сумма заказов работала, когда мы
написав тест, который не имеет
код, написанный для него, однако
как мы можем изменить эти тесты на
сделаем шаг к коду, который мы
хочу хорошо, первое, что приходит
ум заключается в том, что, когда мы вводим выборку
этот и синхронный API вызовут
количество заказов теперь станет
синхронно, он вернет
обещаю, поэтому я думаю, что это первый
небольшой шаг, который мы собираемся сделать, мы
не может избежать этого , так давайте изменим все
эти тесты, чтобы ожидать обещания вместо этого
все в порядке, давайте знать, что это будет
сломать наш тест, но нет, давайте проверим
что NPM-тест Bam Bam Bam Bam Bam
четыре потерпели неудачу, так что давайте пойдем и исправим или код
так что это означает, что это становится
синхронно возвращает обещание обещания
обещание не решает этот ремень
в слоне, кстати, если вы не знаете, если
ваши обещания не решаются для вас
все, что он делает, это то, что он принимает значение и
обертывает это обещанием, и если вы
не знакомы с обещаниями в целом
вы, я сделал видео на обещания здесь, что
вы можете проверить это также в
описание exo снова проведет тесты
и тесты на ветчину для прошедшего мороженого я знаю
приятель посмотрим, как мы работаем на самом деле
крошечные шаги мы решаем один маленький
проблема в то время, и это очень
характеристика единицы тестирования, которую вы
перейти красный зеленый красный зеленый красный зеленый красный
зеленый красный зеленый, и для меня это очень
Мне очень нравится, что это
абсолютно любимый аспект подразделения
тестирование дает мне постоянную
смысл прогрессии — это
подтверждение того, что я делаю вещи
все идет хорошо, и когда мы строим
это также дает мне ощущение
безопасности, которую мы делаем
прогресс, не нарушая ни одного из наших
предыдущие тестовые примеры все в порядке, так что теперь
давайте, наконец, напишем пример теста
что описывает то, что мы хотим
код, который нужно делать, если материал
вещи перестают нормально хмм
но что мы на самом деле хотим
код, который нужно делать, мы хотели сделать
довольно много вещей, когда вы думаете
об этом мы хотели получить данные из
этот API был спокойным, и тогда мы хотели
разобрать этот ответ, а затем мы хотели
чтобы получить ответ, который они сделали
принять этот ответ , что синтаксический анализ ответа
и извлечь обширную стоимость бани Тихого океана
от него, а потом мы хотим, чтобы к чему
умножьте носок или общее количество, которое
мы предварительно рассчитали с этим
что НДС в хороший день
что нет никаких проблем при
весь совершенный кофеин спешит , я у тебя был
большая отличная неделя, и я много спал, но
возможно, у меня тоже плохой день,
мы такие, как бог, где
я начинаю
и в эти дни кодирование часто ощущается
бит, подавляющий вас, как усталый, и это
я считаю, что это действительно хорошо
ваш сон сделать шаг назад и спросить
себя, что является наименьшим возможным
шаг, который я могу сделать так, возможно, он вызывает
этот API спокойно, если указан код страны
поэтому изначально тесты мы собирались
просто сосредоточьтесь на том, чтобы
на самом деле называет это более счастливым конусом вообще
что это то, что мы собираемся делать ребенку
меры
так что я готов принять это и просто собираюсь
возьмите это или общее здесь, вы знаете
это круто и прекрасно, давайте просто изменим
это, чтобы затащить вафли, есть действительно
дорогой, возможно, я имею в виду, поэтому мы
только покупая два, и я собираюсь написать
страна здесь нравится и да давайте использовать
Германия снова здесь и после
звонок завершен, мы собираемся
делать
что мы будем делать
да это где модульное тестирование
на самом деле сложно мне вам нравится как мы
убедитесь, что что- то, что не имеет
это то, что происходит
что происходит внутри порядка всего это
внутри этого он звонит другому
Как мы можем, как мы можем
проверить это и как может Блэр хорошо
возможно, нам не нужно, возможно,
просто на самом деле это называется API в
единичный тест, а затем просто проверьте
с результатами, которые вышли просто
давайте просто используем настоящую вещь нет нет нет
мы не сможем сделать это, как если бы нам понравилось
модульные тесты должны выполняться действительно
очень быстро, если у нас есть
сотни из них, и они будут запускать все
над местом, и если если у нас все
эти сетевые вызовы в нашем наборе тестов он
будет очень медленным , и мы не сможем
чтобы запустить его на каждом же , как мы хотим
да, ты трогаешь одну из больших
выгоды от насмешек, если у нас есть ложные издевки
на месте в наших тестах они будут
работать со мной немедленно , и мы сможем
запускать сотни тестов всего за пару
секунд, что означает, что мы будем
умеет тестировать больше и быть более уверенным
в нашем коде также тесты будут больше
поэтому мы не будем сталкиваться с этим, когда
мы просто нажимаем save, и мы просто находим, что
нормально, некоторые сетевые запросы терпят неудачу здесь, или мы
нужно запустить его снова, и только это да
это будет неприятно нормально, но даже так, как
действительно ли мы получаем, как мы
как мы обманываем это нормально, тогда, возможно, мы
есть волшебная библиотека или две, которые могут
я бы потребовал и разрешил
нам внедрить его в исполняющую среду нет
не магия
хорошо некоторые люди любят эту магию
инъекции, и они используют его как
просто нет, я знаю
нет, мне это не нравится, мы можем
пожалуйста, используйте что-то, что ясно
и просто и что мы можем легко видеть
как это работает нормально хорошо , что об этом
что, если бы мы были теми, кто положил выборку
в этом о, вы имеете в виду, что мы передаем его
в качестве аргумента функции здесь как
точно так и да, а потом мы
может тогда сделать что-то вроде подделки
забрать, как пропустить, что вы знаете, также подделка
fake fetch, и это просто функция
и он принимает правило, а затем мы можем просто
создайте переменную здесь, как будто это подделка
fetch cold равно false, но тогда, когда
фальшивая добыча холодная, мы установили это на Чу как на
фальшивая поддельная холодная правда была правдой, а затем
в последовании количество воды
выполненный, который мы можем сделать, может ожидать, это подделка
принесите холод, чтобы быть правдой, давайте запустим это и
TM , что означает, что это
должен потерпеть неудачу и приступить к порядку
всего, а затем предположим, что нам нужно
переходите сюда, что есть, и мы также
знаешь, что, если сейчас,
подумайте, что мы будем, если мы просто сделаем это
будет хорошо, да, теперь я знаю это сейчас
работает тест , который мы создали , но все
они действительно терпят неудачу
так что позвольте мне исправить это просто быстро просто
мне понравится em
что тут же я собираюсь изменить
подпись всех этих я собираюсь
получить пустую функцию, потому что они не
действительно заботиться о приеме этих тестов
потому что они не используют его
они не используют его, поэтому у них нет
чтобы они не делали выборку и
если мы снова запустим этот бум, все из них
удастся хорошо, но пиво придет
но мы также хотим , чтобы убедиться , что
правильно называет API в правильном порядке
теперь он просто называет идиот прямо сейчас да
точно так же, как извлечения , на самом деле это не вызов
давайте посмотрим, вернемся к API
звоните давайте вернемся и проверить , или они
вернемся к песочнице здесь
здесь у нас это есть
Я собираюсь скопировать, чтобы вернуться к
тест, а затем я здесь, но раньше
настройка — поддельная холодная выборка, мы
на самом деле вы ожидаете здесь
не ожидайте, что Эрл должен будет это сделать
вы знаете, что на самом деле изменит это
к другому пришла да нет нормально круто let’s
выполните это, также важно, чтобы вы
на самом деле проверьте, что ваш новый
тестовый код фактически не работает, так что
вы действительно убедитесь , что это
на самом деле проверить что-то в противном случае
очень легко просто написать о тесте и
затем сразу же переходите к написанию
код, и так вы могли бы просто
не на самом деле проверить, что вы хотите
поэтому давайте убедиться, что это на самом деле
называет правильно и правильно вы
круты
здесь приятно
мы поговорили немного раньше, как в
предыдущие эпизоды о триангуляции
против фальшивки против очевидного
и я собираюсь
содержание с очевидной реализацией
если бы мы сделали триангуляцию, мы бы
тест на еще один тест здесь, чтобы убедиться
что это не случайно
дублируется между тестами, но в этом
в этом случае я просто напишу
правильная реализация, которая
укажите страну-загородку, давайте проверим этот тест
хорошо, так что только что произошло здесь, что
мы делаем то, что мы создаем это
функция, называемая поддельной выборкой, требуется
стрелка, а затем добавим ожидание
здесь, чтобы L был прав, нет
дерьмо здесь, а затем взять код страны
это то же самое, что и здесь
всюду, а затем он принимает это
переменная устанавливает эту переменную здесь поддельной
вызванный вызов true, который мы после
все, что они установили, мы ожидаем, что это подделка
fetch называется true, поэтому мы
если код страны указан здесь
но вы знаете, что мы на самом деле не делаем
что в этом тесте я собираюсь удалить
это, и я собираюсь поставить это да здесь
напомнить себе, что нам нужно сделать
что позже , и это способ создания
ожидающие испытания Я не предоставляю тело
так что теперь, когда я запускаю тесты NPM, это происходит
показать, как один пропущен, так что это добрая
как можно использовать это как своего рода
или в письменном виде наш тест очень приятный I
знаете, многие из вас, вероятно, будут раздражать
тем, что я не я
уделяя большое внимание именованию тестов
но мы доберемся до этого позже
Я да, в этот момент это не то, что
на что мы смотрим и как это
все работает в том, что мы проходим это
это выбор в порядке всего как
аргумент так, или сумма не
требуется получить здесь, мы не делаем, когда
Const
fetch требует получения извлечения, мы — мы
не делая этого, мы получаем это как
аргумент к этой функции и
это техника называется зависимость
инъекции, он очень распространен в
тестируемых приложений, потому что это
очень простой способ обеспечить это и
есть много для этого, я сделал
отдельный эпизод об этом вы собираетесь
чтобы увидеть много этого в этом в этом
серии , но если вы больше заинтересованы в
как, например, погружение в зависимость
вы можете проверить этот эпизод
здесь и это также эпизод в ссылке
в описании эпизода к этому
если вам интересно все это
сказал, что я думаю, что этот эпизод
здесь немного длиннее, поэтому мы
собирается закончить это прямо здесь, как ooh
Кульминация на следующей неделе мы собираемся
приступить к реализации ответа
синтаксический анализ в этом в API выборки и
мы также собираемся, возможно, собираемся
исправьте эту маленькую вещь вот так, если
указанный в стране тест, как
отрицательный тест может быть, может быть, вы начнете
глядя на конкретную макетную функцию
макет помощников, которые находятся или глотают
потому что это просто мы создаем макет
макет функции полностью вручную
были бы ванильные гайки JavaScript, которые мы можем сделать
что вы часто это делаете, но это также
приятно использовать помощников шутки, чтобы сделать
вещи немного понемногу
может попасть в следующий раз
просто смотрел эпизод веселья
функция я выпускаю каждый понедельник
утро Oh 800 G
команда, если вы смотрите из будущего
вы можете проверить эпизод на следующей неделе
здесь, и если вы смотрите от настоящего
вы можете нажать здесь, чтобы подписаться так
что вы не пропустите этот эпизод, если
вы действительно забывчивы, вы также можете
включать уведомления в I am nvj до тех пор, пока
следующий понедельник утром следите за обновлениями
наш ванильный JavaScript- тест
набор для использования тестового бегуна Jes вместо
в этом видео мы собираемся сделать некоторые
дополнение к нашему фактическому коду
код и добавить некоторый код , что
синхронно извлекает данные из сети
службы, и для этого мы
собирается высмеять этот вызов, что означает, что
Сегодняшний эпизод — насмешка над мной и
mpj, и вы смотрите веселую забаву
функция
[Музыка]
[Музыка]
[Музыка]
хорошо, если вы обычный зритель
вы можете заметить, что я в новом месте
это моя новая студия пространство,
предназначенный для веселой забавной функции
нет я, я не сделал никакого звука или
ничего из этого пространства, но я просто
прибыл вчера, и именно поэтому
столько эха, которое будет исправлено в
ближайшие видео, а также не слишком
захватывающее, возможно, придется что-то сделать
об этом, а также я не уверен
об угле или что — нибудь на самом деле это
буду захватывающе Я собираюсь сделать это
бит более уютный, а затем, вероятно,
полная студийная экскурсия по этому пространству Я
супер взволнован, он чувствует себя действительно
хорошо иметь как вероятное место работы
пойти и да , это будет здорово
в любом случае сегодня мы собираемся изучить MOC
функции
Функции MOC — это поддельные функции, которые мы
использовать вместо реальной сети или
вызов базы данных или, возможно, не вызов
к API платежей в наших тестах мы делаем это
потому что нам нужно запустить модульные тесты и
другие автоматизированные тесты в целом
сотни и сотни и сотни
раз, и нам нужно запускать их очень быстро
поэтому в некоторых случаях это просто невозможно
использовать реальный платеж err real API для
пример, как мы можем сделать 200 тестов
операции с кредитными картами и даже если
они дают нам тест API мы были
как было бы очень медленно поддерживать
делает реальную сеть называет все время
потому что, если вы запустили модульное тестирование
люкс обычно имеет четыре-семь
сто тестов , и вы хотите , чтобы иметь возможность
запускать эти и в считанные минуты или предпочтительно
секунд, и если вы только что участвовали
задействовать сетевые вызовы и что да
становится полностью неосуществимой и Сеть
звонки имеют тенденцию к сбою
в другое время, что означает, что
тестовый набор заканчивается хрупким и
как вы запускаете 400 тысяч
один почувствовал там , и вы бежите за
сундук, и одно испытание терпит неудачу там, и это
просто да, макет функции возвращает подделку
значения и макетные функции также позволяют нам
осмотреть макетную функцию после того, как мы
завершил проверку, чтобы мы
может проверить, что функция макета была
так, как мы ожидали,
так давайте посмотрим на проблему
что нам нужно, чтобы Маркс решил все правильно
здесь у нас есть наш старый друг из
последние эпизоды нашей общей функции заказа
позвольте мне добавить разрыв строки здесь да
потому что это лучше при работе с
системы электронной коммерции, с которыми нам нужно иметь дело
налогового права, и в Европе мы имеем это
вещь называется налог на добавленную стоимость, который
вид аналогичного налога с продаж в
США и сложность этого
что, когда вы продаете человеку в
другой стране ЕС, которую вы должны взимать
их налог с продаж , это
налог на добавленную стоимость, который применяется в
их стране, поэтому, если вы продаете
Германии вам нужно будет взимать 19 процентов
налог и зарегистрируйтесь , и вам нужно, если
вы продаете кому-то в Великобритании, вам нужно
продавать их продавать их на 20%
пока они не выйдут из Европейского союза, где
брексит, чтобы эти ставки менялись
вокруг них они не стабильны для всех
вечность, так что да, мы не можем просто тяжело
закодируйте их и надейтесь, что они никогда
к счастью, есть некоторые
услуги, которые обрабатывают это для нас, такие как
услугу, которую мы собираемся использовать
которые сегодня является то , что API доткомов очень
первое, что я хотел бы сделать
прежде чем делать какие-либо кодировки, необходимо
немного ознакомьтесь с этим
API Я всегда хотел сделать это очень
Первое, когда я подвергаюсь воздействию новых
API, так что мы собираемся позвонить
НДС API полностью изолирован от всех
наш другой код и
общая сумма и все эти проблемы и проверка
это отдельно я расскажу о
почему мы делаем это так в немного
но пока мы не будем прыгать
впереди в тестах кодирования или кода мы
посмотрим на API в порядке, поэтому давайте
взгляните здесь на этот API-интерфейс dot-com и
если мы посмотрим здесь, и здесь они перечислили
как примеры различных вызовов API, мы
намерены использовать эту страну
поиск кода и вот некоторые PHP, но
то , что нас интересуют здесь , в этом
Ответ JSON, который мы получаем, поэтому он собирается
быть статус вы собираетесь получить вид
код бла-бла-бла- бла, и вот это
это значение, которое нас интересует
поэтому из Люксембурга в Люксембурге мы имеем
действительный это 70% вита, поэтому он находится под
Существует нет есть объект ставки
который содержит наш хорошо она содержит
стандартного стандартного объекта, который, в свою очередь,
содержит значение , а затем она содержит
куча других
уменьшено и alt и супер супер уменьшено
oh для электронных книг у них есть более низкая батарея
электронные книги очень интересны в любом случае
это тот, который нам интересен, так что
давайте создадим новую файловую песочницу
Сохранить, и я собираюсь начать использовать
эта вещь называется Quokka
что очень удобно — это плагин
сделать встроенную оценку JavaScript
и мне очень приятно, когда ты
играя с кодом, а также
делать эти видео очень приятно просто
играя с вещами, поэтому сначала
мы будем нуждаться в том, чтобы это
старой среды, поэтому нам не нужны недостатки
иначе у нас не будет доступа к выборке
и давайте посмотрим, давайте сделаем уголь, не получим
держись, я хорош
положите это в результате и соль, это не
штраф, конечно, и давайте сделаем выборку
и нам нужно, и давайте вернемся к
Что ты делаешь, это конец?
вы знаете, позвольте мне украсть эту копию
вставить пасту, что в этом PHP мы не
хочу PHP, пока я просто собираюсь использовать
de для этого Deutschland или Германии так
далеко мы имеем некоторый результат здесь, давайте посмотрим
посмотрим, что это такое, потому что мы хотим
ответ dot txt все в порядке, круто
требуется статус для аутентификации a-1
mmm вернемся к документам
API, и нам нужна часть заголовка
мм гм
API-ключ в порядке, поэтому нам нужно сделать это
нужен храм, который заголовок местоположения как
хорошо, если я ключу, я думаю, что здесь они
на самом деле использовать заглавные буквы a, и я
знать, что согласно HTTP
стандартная точка или H лучше, да
должны быть эти, они должны быть
дела — это забавный факт, если вы строите
API, как я уже сказал
эта вещь в моих переменных окружения
так делать , и я думаю , что я положил его в качестве
Ключ API факт
Бог там, это так ,
вы не видите мой ключ API, но если
вы делаете это сами, вы можете просто
вставьте свой ключ API здесь, чтобы вы
генерировать на API VAT, действительно вызывает вызов
это помогает нам , мы все равно не получаем
требуется аутентификация uh-huh oh wait
Я не на самом деле, я просто передаю это
в качестве варианта, если я действительно должен сказать
рыбы, что это все это заголовок
извините, я все время полагаю, что вы
хорошо, вы достигли предела API
призывает к вашему бла-бла-бла-бла-бла
позвольте мне войти в лучший API, чтобы прийти и
покупайте больше кредитов, потому что я сделал
это много раз репетирует это и
У меня закончились кредиты, которые у меня есть сейчас
заплатил больше вызовов API, я сделал так много парней
звонки при тестировании этого у нас есть некоторые
здесь все в порядке, теперь это 200 статус
код страны ee alright nice
где весят по своим ставкам, что мы
глядя на меня, дайте мне силы, как JSON
вместо этого Джейсон , а затем я собираюсь
см., что данные показывают , что
которые дают нам прийти
хорошо, и тогда у нас есть стандарт здесь
давайте посмотрим стандарт скорости передачи данных, посмотрим, что это
дает нам правильную сеть значение объекта 19 и
поэтому мы просто извлекаем значение, а затем мы
есть то, что мы хотим, так что это
в основном вызов, который нам нужен для нашего кода
чтобы все было в порядке, позвольте мне немного поговорить
почему мы сделали эту белую игру вокруг
и изучить API отдельно и
потому что когда я был молодым программистом
Я бы просто начал писать код
очень быстро я был очень большой целью
ориентированных и ориентированных на решения и
как я хотел начать писать код
прямо сейчас, поэтому я просто хотел бы начать
запись выборки в порядок
здесь, но со временем я узнал, что это
стоило мне тоже, я имел в виду, что мне пришлось
справиться с несколькими проблемами в моей голове
в то же время мне приходилось сталкиваться с тем, что у меня было
иметь дело с проблемой выяснить ,
API и интеграция API в мой
существующей логики, а также
одновременно решать эти проблемы
как правило, приводит к тому, что я делаю больше
ошибки и более медленное движение в целом
и это было особенно актуально, если в дни
когда я не был на вершине своей игры, я
устал или мне было грустно от чего-то
что произошло в моей личной жизни
в конечном итоге, как моя производительность
в конечном итоге быть очень ненадежны его
иногда работаю, но иногда я просто получаю
застрял, и я делаю код очень медленно и
и код, который я производил, также был
больше подвержено ошибкам, и после того, как я увидел это
проблема II сделала то, что улучшилось
я много как программа, и это было
начинают искать возможности, где
там есть две проблемы или
больше запекается в одну большую проблему и
ищу возможность, возможно, мы
может нарушить эти проблемы в
меньшие изолированные проблемы и
их отдельно и один очень конкретный
Например, это то, что мы делаем здесь
будет работать , что мы сделали здесь , чтобы получить
немного милый милочка с API первой
прежде чем использовать его в вашем коде хорошо так
вернемся к нашим испытаниям в серии
мы сначала пишем наши модульные тесты
прежде чем писать код и причину
почему мы делаем это
что я нахожу по крайней мере, что это много
легче выяснить , какие тесты писать
если вы сначала пишете тесты, когда я
попытайтесь написать тесты после того, как я написал
код. Я часто пытаюсь
какие тесты должны быть написаны
хорошо, так что сначала мы говорили, что у нас есть
говорили о том, почему это хорошая идея, но я
все еще есть проблема с этим, потому что
как вы делаете, как вы думаете, в
сначала тесты, потому что это
написав тест, прежде чем код почувствует
как обратный взгляд на меня, как вы
как вы это делаете ,
обратное мышление да да точно я
чувствую, что этот письменный тест сначала не
к чему я привык, и поэтому он
мне неудобно , это для меня новый способ
думать и думать, что мне нужно
держать за руку
о том , как это сделать , что это то , что те
отличные моменты, если вы не знаете, что я
как я стою на этом балансе
это похоже, что это фантастика, потому что это
заставляет меня думать ясно, но это также
иногда немного шаткий в любом случае
ключ заключается в том, чтобы вместо этого или думать в терминах
от того, что компьютер выполняет , вы
подумайте о примерах, а не о том, что
исполнители компьютеров считают примеры вызовов
поэтому вместо того, чтобы думать в терминах кода
общего объема заказа, о котором мы думаем в терминах
примеров того, как вызывать общее количество заказов
и когда вы думаете об этом, что в
общий довольно хороший способ описания
как что-то работает с рядом примеров
если вы когда-либо читали правила настольной игры
это становится очень очевидным.
правила без каких-либо примеров
становится очень трудно разобрать из-за
что это очень часто для хорошей доски
правила игры
серия примеров рядом с каждым набором правил
объяснить, как конкретные случаи того, как
это правило может применяться, а иногда
Я даже включаю целые сеансы игры, поэтому
что вы можете понять, как игра
работает
код по крайней мере для меня да это очень
подобно тому , как функция вы
знать 10 или 30 строк длиной, возможно, ветку
несколькими заявлениями здесь и там
то мне трудно понять все
нюансы его, если есть единица
тесты для этой функции, показывающие пару
тестов, что значительно облегчает
для меня синтаксический анализ, так что эти тесты здесь вы
могут рассматривать их как примеры, показывающие
как мы, как общий порядок заказов, или как мы
хотите, чтобы общая сумма заказов работала, когда мы
написав тест, который не имеет
код, написанный для него, однако
как мы можем изменить эти тесты на
сделаем шаг к коду, который мы
хочу хорошо, первое, что приходит
ум заключается в том, что, когда мы вводим выборку
этот и синхронный API вызовут
количество заказов теперь станет
синхронно, он вернет
обещаю, поэтому я думаю, что это первый
небольшой шаг, который мы собираемся сделать, мы
не может избежать этого , так давайте изменим все
эти тесты, чтобы ожидать обещания вместо этого
все в порядке, давайте знать, что это будет
сломать наш тест, но нет, давайте проверим
что NPM-тест Bam Bam Bam Bam Bam
четыре потерпели неудачу, так что давайте пойдем и исправим или код
так что это означает, что это становится
синхронно возвращает обещание обещания
обещание не решает этот ремень
в слоне, кстати, если вы не знаете, если
ваши обещания не решаются для вас
все, что он делает, это то, что он принимает значение и
обертывает это обещанием, и если вы
не знакомы с обещаниями в целом
вы, я сделал видео на обещания здесь, что
вы можете проверить это также в
описание exo снова проведет тесты
и тесты на ветчину для прошедшего мороженого я знаю
приятель посмотрим, как мы работаем на самом деле
крошечные шаги мы решаем один маленький
проблема в то время, и это очень
характеристика единицы тестирования, которую вы
перейти красный зеленый красный зеленый красный зеленый красный
зеленый красный зеленый, и для меня это очень
Мне очень нравится, что это
абсолютно любимый аспект подразделения
тестирование дает мне постоянную
смысл прогрессии — это
подтверждение того, что я делаю вещи
все идет хорошо, и когда мы строим
это также дает мне ощущение
безопасности, которую мы делаем
прогресс, не нарушая ни одного из наших
предыдущие тестовые примеры все в порядке, так что теперь
давайте, наконец, напишем пример теста
что описывает то, что мы хотим
код, который нужно делать, если материал
вещи перестают нормально хмм
но что мы на самом деле хотим
код, который нужно делать, мы хотели сделать
довольно много вещей, когда вы думаете
об этом мы хотели получить данные из
этот API был спокойным, и тогда мы хотели
разобрать этот ответ, а затем мы хотели
чтобы получить ответ, который они сделали
принять этот ответ , что синтаксический анализ ответа
и извлечь обширную стоимость бани Тихого океана
от него, а потом мы хотим, чтобы к чему
умножьте носок или общее количество, которое
мы предварительно рассчитали с этим
что НДС в хороший день
что нет никаких проблем при
весь совершенный кофеин спешит , я у тебя был
большая отличная неделя, и я много спал, но
возможно, у меня тоже плохой день,
мы такие, как бог, где
я начинаю
и в эти дни кодирование часто ощущается
бит, подавляющий вас, как усталый, и это
я считаю, что это действительно хорошо
ваш сон сделать шаг назад и спросить
себя, что является наименьшим возможным
шаг, который я могу сделать так, возможно, он вызывает
этот API спокойно, если указан код страны
поэтому изначально тесты мы собирались
просто сосредоточьтесь на том, чтобы
на самом деле называет это более счастливым конусом вообще
что это то, что мы собираемся делать ребенку
меры
так что я готов принять это и просто собираюсь
возьмите это или общее здесь, вы знаете
это круто и прекрасно, давайте просто изменим
это, чтобы затащить вафли, есть действительно
дорогой, возможно, я имею в виду, поэтому мы
только покупая два, и я собираюсь написать
страна здесь нравится и да давайте использовать
Германия снова здесь и после
звонок завершен, мы собираемся
делать
что мы будем делать
да это где модульное тестирование
на самом деле сложно мне вам нравится как мы
убедитесь, что что- то, что не имеет
это то, что происходит
что происходит внутри порядка всего это
внутри этого он звонит другому
Как мы можем, как мы можем
проверить это и как может Блэр хорошо
возможно, нам не нужно, возможно,
просто на самом деле это называется API в
единичный тест, а затем просто проверьте
с результатами, которые вышли просто
давайте просто используем настоящую вещь нет нет нет
мы не сможем сделать это, как если бы нам понравилось
модульные тесты должны выполняться действительно
очень быстро, если у нас есть
сотни из них, и они будут запускать все
над местом, и если если у нас все
эти сетевые вызовы в нашем наборе тестов он
будет очень медленным , и мы не сможем
чтобы запустить его на каждом же , как мы хотим
да, ты трогаешь одну из больших
выгоды от насмешек, если у нас есть ложные издевки
на месте в наших тестах они будут
работать со мной немедленно , и мы сможем
запускать сотни тестов всего за пару
секунд, что означает, что мы будем
умеет тестировать больше и быть более уверенным
в нашем коде также тесты будут больше
поэтому мы не будем сталкиваться с этим, когда
мы просто нажимаем save, и мы просто находим, что
нормально, некоторые сетевые запросы терпят неудачу здесь, или мы
нужно запустить его снова, и только это да
это будет неприятно нормально, но даже так, как
действительно ли мы получаем, как мы
как мы обманываем это нормально, тогда, возможно, мы
есть волшебная библиотека или две, которые могут
я бы потребовал и разрешил
нам внедрить его в исполняющую среду нет
не магия
хорошо некоторые люди любят эту магию
инъекции, и они используют его как
просто нет, я знаю
нет, мне это не нравится, мы можем
пожалуйста, используйте что-то, что ясно
и просто и что мы можем легко видеть
как это работает нормально хорошо , что об этом
что, если бы мы были теми, кто положил выборку
в этом о, вы имеете в виду, что мы передаем его
в качестве аргумента функции здесь как
точно так и да, а потом мы
может тогда сделать что-то вроде подделки
забрать, как пропустить, что вы знаете, также подделка
fake fetch, и это просто функция
и он принимает правило, а затем мы можем просто
создайте переменную здесь, как будто это подделка
fetch cold равно false, но тогда, когда
фальшивая добыча холодная, мы установили это на Чу как на
фальшивая поддельная холодная правда была правдой, а затем
в последовании количество воды
выполненный, который мы можем сделать, может ожидать, это подделка
принесите холод, чтобы быть правдой, давайте запустим это и
TM , что означает, что это
должен потерпеть неудачу и приступить к порядку
всего, а затем предположим, что нам нужно
переходите сюда, что есть, и мы также
знаешь, что, если сейчас,
подумайте, что мы будем, если мы просто сделаем это
будет хорошо, да, теперь я знаю это сейчас
работает тест , который мы создали , но все
они действительно терпят неудачу
так что позвольте мне исправить это просто быстро просто
мне понравится em
что тут же я собираюсь изменить
подпись всех этих я собираюсь
получить пустую функцию, потому что они не
действительно заботиться о приеме этих тестов
потому что они не используют его
они не используют его, поэтому у них нет
чтобы они не делали выборку и
если мы снова запустим этот бум, все из них
удастся хорошо, но пиво придет
но мы также хотим , чтобы убедиться , что
правильно называет API в правильном порядке
теперь он просто называет идиот прямо сейчас да
точно так же, как извлечения , на самом деле это не вызов
давайте посмотрим, вернемся к API
звоните давайте вернемся и проверить , или они
вернемся к песочнице здесь
здесь у нас это есть
Я собираюсь скопировать, чтобы вернуться к
тест, а затем я здесь, но раньше
настройка — поддельная холодная выборка, мы
на самом деле вы ожидаете здесь
не ожидайте, что Эрл должен будет это сделать
вы знаете, что на самом деле изменит это
к другому пришла да нет нормально круто let’s
выполните это, также важно, чтобы вы
на самом деле проверьте, что ваш новый
тестовый код фактически не работает, так что
вы действительно убедитесь , что это
на самом деле проверить что-то в противном случае
очень легко просто написать о тесте и
затем сразу же переходите к написанию
код, и так вы могли бы просто
не на самом деле проверить, что вы хотите
поэтому давайте убедиться, что это на самом деле
называет правильно и правильно вы
круты
здесь приятно
мы поговорили немного раньше, как в
предыдущие эпизоды о триангуляции
против фальшивки против очевидного
и я собираюсь
содержание с очевидной реализацией
если бы мы сделали триангуляцию, мы бы
тест на еще один тест здесь, чтобы убедиться
что это не случайно
дублируется между тестами, но в этом
в этом случае я просто напишу
правильная реализация, которая
укажите страну-загородку, давайте проверим этот тест
хорошо, так что только что произошло здесь, что
мы делаем то, что мы создаем это
функция, называемая поддельной выборкой, требуется
стрелка, а затем добавим ожидание
здесь, чтобы L был прав, нет
дерьмо здесь, а затем взять код страны
это то же самое, что и здесь
всюду, а затем он принимает это
переменная устанавливает эту переменную здесь поддельной
вызванный вызов true, который мы после
все, что они установили, мы ожидаем, что это подделка
fetch называется true, поэтому мы
если код страны указан здесь
но вы знаете, что мы на самом деле не делаем
что в этом тесте я собираюсь удалить
это, и я собираюсь поставить это да здесь
напомнить себе, что нам нужно сделать
что позже , и это способ создания
ожидающие испытания Я не предоставляю тело
так что теперь, когда я запускаю тесты NPM, это происходит
показать, как один пропущен, так что это добрая
как можно использовать это как своего рода
или в письменном виде наш тест очень приятный I
знаете, многие из вас, вероятно, будут раздражать
тем, что я не я
уделяя большое внимание именованию тестов
но мы доберемся до этого позже
Я да, в этот момент это не то, что
на что мы смотрим и как это
все работает в том, что мы проходим это
это выбор в порядке всего как
аргумент так, или сумма не
требуется получить здесь, мы не делаем, когда
Const
fetch требует получения извлечения, мы — мы
не делая этого, мы получаем это как
аргумент к этой функции и
это техника называется зависимость
инъекции, он очень распространен в
тестируемых приложений, потому что это
очень простой способ обеспечить это и
есть много для этого, я сделал
отдельный эпизод об этом вы собираетесь
чтобы увидеть много этого в этом в этом
серии , но если вы больше заинтересованы в
как, например, погружение в зависимость
вы можете проверить этот эпизод
здесь и это также эпизод в ссылке
в описании эпизода к этому
если вам интересно все это
сказал, что я думаю, что этот эпизод
здесь немного длиннее, поэтому мы
собирается закончить это прямо здесь, как ooh
Кульминация на следующей неделе мы собираемся
приступить к реализации ответа
синтаксический анализ в этом в API выборки и
мы также собираемся, возможно, собираемся
исправьте эту маленькую вещь вот так, если
указанный в стране тест, как
отрицательный тест может быть, может быть, вы начнете
глядя на конкретную макетную функцию
макет помощников, которые находятся или глотают
потому что это просто мы создаем макет
макет функции полностью вручную
были бы ванильные гайки JavaScript, которые мы можем сделать
что вы часто это делаете, но это также
приятно использовать помощников шутки, чтобы сделать
вещи немного понемногу
может попасть в следующий раз
просто смотрел эпизод веселья
функция я выпускаю каждый понедельник
утро Oh 800 G
команда, если вы смотрите из будущего
вы можете проверить эпизод на следующей неделе
здесь, и если вы смотрите от настоящего
вы можете нажать здесь, чтобы подписаться так
что вы не пропустите этот эпизод, если
вы действительно забывчивы, вы также можете
включать уведомления в I am nvj до тех пор, пока
следующий понедельник утром следите за обновлениями
Please follow and like us:
Be First to Comment