Press "Enter" to skip to content

Unit testing in JavaScript Part 5 — Mocking continued


хорошее утро в понедельник сегодня мы
продолжение серии модульных испытаний
вы можете проверить полный эпизод
плейлист, нажав там, и сегодня мы
продолжают изучать насмешливый I
am mpj, и вы смотрите веселую забаву
функция
[Музыка]
все в порядке, давайте посмотрим, где
мы в последний раз позволили мне закрыть это
window — это общая функция порядка
что мы работали, и мы видим здесь
что мы начали немного с
вызывая выборку здесь и хорошо, это не
делая многое, что нам также нужно было начать
некоторые ответы синтаксический анализ здесь, поэтому я думаю
что это то, что мы собирались
продолжить его я также собираюсь открыть
песочницу, чтобы мы помнили, что
мы делаем здесь так, как вы
выполните вызов, который вы вызываете извлечения с помощью
L, а затем вы анализируете ответ в
в этом случае мы разбираем это, это Джейсон
и тогда мы собираемся извлечь
Вит ставка здесь хорошо, поэтому у нас есть подделка
выберите здесь и что мы хотим, чтобы это делалось
возвращает обещание, которое разрешает
два ответа
поэтому вы видите здесь, чтобы получить обещание
и это обещание разрешает это
объект ответа, который, в свою очередь, имеет
метод Джейсона Джейсона, который в свою очередь
будет ли это на самом деле
обещание , которое разрешит эти данные
здесь, чтобы вы знали, давайте просто сделаем это
на самом деле такая поддельная выборка вернет мне
пообещал сдерживать, который разрешает
объект ответа — это ответ
объект, и он имеет смежную, но
который, в свою очередь, решает заказать его, это
обещание
возвращает обещание, устраняющее к о
извините, я переключил маленькую песочницу
и я решаю, что это данные
стандартное значение ставки позволяет мне скопировать
так что просто помогите мне здесь разрешить
объект, который имеет ставки, которые, в свою очередь,
стандартная ставка, которая, в свою очередь, имеет
ценность, которая будет 19, возможно
Я сделал здесь ошибку, обещаю
Я пьян, дайте мне исправить это обещание или
Конечно, это то, что я имел в виду
в любом случае, учитывая это, Блэр должен
на самом деле ожидать, что это умножит
значение этого заказа на 19% давайте обновим
тест, чтобы сделать это, поэтому ожидаем результата
быть 20 раз 2 раза 1 19 давайте запустим это
создать интегрированный терминал и запустить npm
тесты показывают, что мы получаем
получить я ожидал получить провал, но мы
не хм, это странно новое на самом деле
это не потому, что я хм позволю мне
близко, что я покажу вам, что
ошибка , которую я сделал собираюсь немного увеличить
а также чтобы мы могли видеть больше
способ просто работает , когда он приходит
к синхронному тесту
он должен знать, когда тест закончился
так что вы знаете, что можете это сделать , если
эти немые функции, а затем называть их
когда на когда тест будет сделано , мы могли бы
посмотрите, работает ли это на самом деле и в пятницу
тест да, что это работает, но это не
как мы хотим это сделать, потому что это может
также вместо использования этого обратного вызова
шаблон мы можем просто вернуть это это
обещаю здесь, это немного больше не обещает
приятно, что это хорошее ФБР, это лучше
чем dun dun вещь, так что мы будем
круто, поэтому они бросят бросок
ошибки, и это будет распространять
которая может
ручка, она действительно гладкая, но в любом случае
у нас есть проблема, мы ожидали, что
что-то вроде этого, но мы
фактически получил 40, потому что у нас нет
код для этого, давайте посмотрим здесь
это означает , что
обещание, которое разрешает ответ и
откликается имеет метод для JSON , что мы
можно назвать , который , в свою очередь научных возвратов
обещание, которое решает добавить некоторые данные
и что данные будут иметь некоторые тарифы и
один курс, который является стандартной нормой, чем
что без значения 19 так давайте пойдем
назад может реализовать эту скорость передачи данных
и это стандартная скорость и она имеет
lot C там, а затем
мы будем использовать эту ставку и будем
на самом деле скопируйте эту копию на
умножьте это на один и на
это время просто сделаем это для
минуту мы исправим, что не получится, но
мы исправим это позже, давайте просто сделаем некоторые
прогресс показывает, что это оказалось
не может читать свойство тогда или не определено
где это
где линия Тоджо три о, мы не сделали
получите, о, это счастливый путь, который у нас есть
куча тестов, терпящих неудачу, теперь давайте
фактически отключить все другие тесты и
сосредоточиться на одном на данный момент, потому что это
очень хорошо в программировании, чтобы решить одну
одновременно, добавляя его только к
актив означает, что он будет работать только
этот тест часто очень полезен, поэтому
давайте посмотрим прямо сейчас это не удается СММ все
право, это все еще только возвращение 40 да
это потому, что мы не на самом деле
возвращая это обещание здесь, он просто
делает этот запрос, а затем он продолжается
к этой линии здесь, что не очень
полезно, поэтому мы нажимаем read write return
хорошо круто, давайте снова запустим его и посмотрим
это помогает о да
ожидалось сорок семь очков 59, но мы
получил наш 760 хмм, что немного
это потому, что мы умножаемся на 19
когда мы действительно будем проклинать это
чтобы быть 0,19, поэтому я думаю, что если мы разделим
это на сто
Я думаю, что правильно, что правильно
да, может, давайте посмотрим
снова запустить NPM-тест, который не станет 7.6
теперь это потому , что мы не
умножая на нулевую точку 19, так что это
на самом деле 1 плюс нулевая точка 19, см., если
что помогает
ах, да круто, теперь мы должны были получить зеленый
правильное значение
Я продолжаю набирать тесты NPM здесь, но я просто
помните, что мы действительно определили
NPM смотреть так же, как извините MVM run
часы , которые изменят ход каждый раз, когда мы
um каждый раз, когда мы сохраняем все
здесь есть некоторое дублирование
мы будем иметь дело с тем, что в конечном итоге
но пока вы mM вложили в него штырь, мы
будет удалять дублирование, но не
пока все тесты не станут зелеными
поэтому давайте фактически позволим мне удалить его только
для просмотра других неудавшихся тестов, которые
не проваливается, потому что тогда не определено
mimimi mimimi mimimi mimimi
Вы знаете , и это потому , что в
случаев мы действительно делаем это, мы только
действительно хочу сделать это, если у нас есть
страна и порядок не могут
обязательно иметь страну, возможно,
пользователь не выбрал его еще так мы
хотите просто иметь оператор if здесь
и закажите точную страну и просто оберните
эта вещь в том, что ты знаешь, Вау, мы
идти и теперь все те тесты или
после этого у нас есть один пропущенный тест здесь
потому что я действительно могу
своего рода фиктивный тест здесь
это уголь, как будто я думаю об этих
что делать так, чтобы говорить, потому что
Я хотел вспомнить этот случай, но он
похоже, что мы на самом деле случайно
решил это, потому что у нас были тесты
по другим причинам, поэтому я
на самом деле собираюсь удалить, что нам не нужно
написать этот тест, который закончился и продал
нас теперь, когда у нас есть другие тесты, которые
просто прикройте, что, естественно, также я думаю
что эта пустая функция здесь отсутствует
на самом деле нуждаются в этом больше, потому что
это просто не использовать его, чтобы я мог
просто измените пустую функцию, чтобы знать
честно говоря, давайте сделаем это, давайте посмотрим
null или общая нет активной функции
нет и нет, нам тоже не нужно
что этот чистящий ячмень чувствую себя немного
бит дезориентирован здесь со всем этим
насмехается, чувствуя, что я не совсем понимаю
что реально , я скептически мы просто
что бы мы ни находились, мы фактически тестируем
ничего здесь или мы просто создаем
эта поддельная поддельная реализация, а затем
просто проверка поддельной реализации
мы фактически проверяем любую реальную логику да
мы такие, как я понимаю, как это возможно
чувствую , что мы делаем совсем немного
притворяясь здесь, делая этот сложный макет или
принести , но то , что мы обеспокоены тем ,
для проверки, если общий объем заказа
вызывая побочный эффект, который мы хотим
забрать и что он делает правильные вещи
с чем это повлияло бы на этот побочный эффект
выходы, которые являются данными, поэтому
что тест делает, мы
связанные с тестированием или общим
правильно , а что или общее делает их
причина как выбор побочного эффекта
поэтому этот побочный эффект выходит из строя
Всего так сказать, и мы проверяли
что это выглядит правильно , вот что
мы делаем, а затем мы проходим мимо
ответ обратно в порядок, а затем
мы проверяем, что выходит из строя
всего после этого, чтобы увидеть, что это
верный
так как запрос выходит, мы проверили
что запрос mmm выглядит хорошо выглядит
мы ожидаем , что это будет тогда мы переходим в
ответа, а затем, учитывая тот ответ, мы
убедитесь, что мы исправим это
из этого или как правильный порядок
всего, где это умножено в таком порядке
всего то, что мы тестируем, мы не
на самом деле мы вообще не тестируем выборку
здесь я скептически отношусь к этому
работа заключается в том, что мы написали много
тестов теперь нам не нужен код, но мы
фактически не пробовал против
реального API, который мы построили, он проверил в
песочница, но у нас нет
на самом деле проверить, что или общий пробег
правильно против реального API я
заинтересованы в том, что, когда вы
делать TDD с издевательствами он может только
вид грязной TDD, прежде чем мы были кодирования
как Тилли с чистыми функциями, мы были
написав немного, а затем мы внедрили его
в коде, и мы действительно увидели бы
реальные результаты, потому что не было
побочный эффект, это был просто чистый
Функция и наши тесты , но когда мы
делать TDD против насмешек, это просто мы
создавая фальшивую реальность, а затем мы
проверьте с помощью TDD, что наши наши тесты
правильные вещи в этой поддельной реальности
и в зависимости от того, что происходит в
фальшивая реальность, что
тест делает ответ на это, извините
код отвечает на это правильным образом
но все зависит от того,
правильно разработав подделку
реальность, что означает, что когда мы
делать что- то насмешливое, что мы на самом деле делаем
должны фактически проверить, что мы сделали
правильные предположения в нашем тесте на
проверка материала в песочнице так, чтобы
давайте посмотрим , если мы можем сделать это на самом деле я
собирается импортировать общий объем заказа или
всего 42 доллара, и мы требуем, и я
собираюсь закрыть это немного, я собираюсь
start quokka в этом файле там мы идем
и мы собираемся вызвать результат const const
у нас есть общая сумма заказа и
первый аргумент и проходит в выборке
потому что он нужен, и мы собираемся
дать ему какой-то порядок да давайте
украсть один из этого теста здесь
обратно в песочницу перейдите сюда, см.
что происходит oh не может читать правильно
стандартное или неопределенное интересное, что
происходит, поэтому ставки не определены
это на самом деле просто x
console.log x посмотреть, что произойдет 401
Аутентификация не требуется , пожалуйста , передайте
действительный ключ API имел его в вашем запросе ah
да , это потому , что нам нужно на самом деле
предоставить учетные данные здесь
поэтому у нас еще есть некоторые работы , чтобы сделать в нашем
тест, позвольте мне закрыть это на некоторое время и
взгляните так не вставляйте это в бога I
просто схватил это здесь, чтобы помочь нам
он бок о бок возвращается к тесту
вы собираетесь вставить это здесь, пока мы
работа, если вы, если у вас большой экран
в отличие от меня, кто я делал youtube
канал, вы можете просто разделить свой редактор
бок о бок, это очень удобно, когда
проведение модульного тестирования для проведения тестов
здесь, в вашем ссылочном коде, но
в любом случае это будет пройдено
здесь как объект опций опции, когда я
назовите это ops по крайней мере, и мы ожидаем
заголовки точки не жаль уважать ops заголовки
и мы ожидаем, что у вас есть ключ API
мы ожидаем, что ожидаем
это ключевое одно два три, так что
ключ один два три хорошо вот вещь
мы также потому, что здесь используется процесс
теперь у нас есть другая зависимость, и мы
нужно создать поддельный процесс, а
и передать , что в так функционирует , как правило,
имеют несколько зависимостей и что
имеет N, который, в свою очередь, имеет ключ API для летучей мыши
который, в свою очередь, должен быть ключевым
три
поэтому давайте фактически подтянем терминал
в тумблере, и я знаю, что все
тесты не могут читать заголовки свойств или
неопределенный да, потому что
надеялся, прежде всего, не получить
oops давайте удалим это на самом деле
исправить это сначала
так что или теперь общая сумма будет проходить в некоторых
варианты вы видите, что происходит
категория копирует ключ API неопределенного типа
да, потому что он хочет заголовки
койка мы получаем новую проблему здесь да ключ
1 2 3 Получено undefined давайте фактически
просто ключ API, а затем я напишу
жесткий код ключ здесь, так что это ключ 1
2 3 начните притворяться, но мы хотим с нами
не может иметь значения жесткого кода, подобные этому, поэтому
мы собираемся продолжить хорошо,
процесс прохода вверх здесь, это
объект процесса, мы добавляем, что теперь это
нарушит все другие тесты
поэтому давайте фактически отключим все, кроме
это нет, я вернулся и дудуду не могу
читать
страна собственности О
undefined зависает, что меня путает
здесь да, мы действительно должны пройти
поддельный процесс, в противном случае аргументы
заказ является правильным нажмите процесс прохладный
вызвать ожидание, но выглядеть правильно.
зеленый, но это потому, что у нас есть
поддельное значение здесь я буду использовать фактические
ценность процесса и
[Музыка]
что это было снова, я не вернусь к
контрольная работа
это ключ API, и он зеленый
круто, давайте просто изменим это просто сделаем
уверен, что он ломается правильно yep
Удивительно, что мы удалим единственную и
то мы увидим, что все остальные
тесты терпят неудачу, потому что они не
имеют объект процесса, потому что
они не используют не использовать выборку
мы можем просто передать null здесь
они не имеют значения
не используйте эти тесты
так что просто не посмотрим, и у нас есть
пять прошли так, теперь теперь это на самом деле
использует правильный путь относительно ключа API
так что, конечно, попробуйте это снова попробовать это
опять — таки не может читать собственности страны на
определите, теперь, конечно, нам нужно
передайте процесс в песочнице как
хорошо все здорово, да, мы не можем читать
стандарт собственности или неопределенный
посмотрим, что здесь происходит. Давайте
снова проверьте это X
log X смотри, о, мой бог, плохо спрашивает, что
Плохо об этом, потому что я побежал
из кредитов II снова обновил их
ha для самостоятельной работы не использовать API дроссельной заслонки
для учебников круто, поэтому позвольте мне удалить это
консольный журнал
и вернитесь в песочницу, наконец,
работает потрясающе все круто, поэтому мы написали
некоторые задачи , которые завершили все
Цепь реакции и синтаксический разбор
ответа, а затем мы также проверили, что
наше издевательство над нашими предположениями о
фальшивая реальность, которую мы создали на самом деле
соответствуют действительности, управляя нашими
код в песочнице, и это правда
как это работает, что требует
праздник
и празднованием я имею в виду
это изменяется в пакете jasa yeah
о, я просто отступом какой-то код, давайте продолжим
что отдельные песочницы также получили некоторые
изменений, давайте фактически скажем git
совершить это также
и скрипт MD мы не хотим, чтобы это
мои заметки о сценарии, и я хочу удалить
пакет JSON там, потому что это было
просто это было просто приглашение, и мы
хочу сохранить их в отдельном
комитет Мне не нравится рассказывать вам
исправления правописания и тому подобное
выпекая их в комитет, я хочу, чтобы я
вроде хочу делать их отдельно мы
тест с фиксированными рисками
сообщения важны, но не
Я думаю, что они
действительно важно, но это не
учебник о хороших сообщениях фиксации
Здравствуйте
давайте все-таки сделаем это исправленным
проблема с отступом Я знаю, что я
непоследовательным, но давайте посмотрим, посмотрим, посмотрим
давайте посмотрим, так это то, что мы добавили здесь
какой-то хороший новый парсинг ответа у нас есть
некоторые дублирования здесь, что мы будем
в конечном итоге исправить мы посмотрели на
мы создали стандарт Wisc или поддельный
выберите здесь , проверив, что он использовал
API, который также передается через подделку
процесс, и мы также проверяем, что
он использует ставку здесь от
поддельный НДС IPI для расчета выхода
результат эта вещь здесь это на самом деле
теперь избыточно, потому что вы знаете,
мы просмотрев вывод , который
полностью зависит от поддельной выборки
на самом деле называют иначе это
не будет работать, это просто
совершенно излишни, поэтому мы собираемся
удалите это
теперь больше не нужны, и мы также можем
удалите эти фигурные скобки, мы не
нужны им больше, давайте фактически просто
убедитесь, что тесты все еще
бег не обходится, поэтому давайте позволим мне
совершить удаление
избыточные проверки
Я чувствую, что эта инъекция здесь
в дополнительном коде, если вы не были единицей
испытывая это и требуя эту вещь
здесь он хотел бы, чтобы это означало, что
может потребоваться всего
это по своей собственной внутренней себе это
чувствует, что механизм инъекции добавляет
немного дополнительного кода и дополнительного кода
но это заставляет меня чувствовать, что это немного
битный дополнительный код, но это не так много
это довольно хорошо, это довольно ясно
что происходит здесь , мы просто требуем
на самом деле мы передаем его в это очень
легко следить за тем, как происходит инъекция
Процесс здесь я имею в виду есть другие
пути, которые мы могли бы достичь, мы могли бы использовать
что-то вроде
Глобал и тому подобное, но это
на самом деле было бы непросто следовать ему
может сэкономить нам немного кода, но
все равно было бы похоже, что это будет
более хрупкий Мне это нравится, потому что это
чрезвычайно просто, что
происходит просто имеет возможность
переопределение требует так, если мы использовали выборку
внутри, как он, с требованием внутри
из общего количества заказов мы могли бы использовать это, но мы
все еще будет проблема с
процесс, который является глобальной переменной, поэтому мы
бы хотелось возиться с этим
глобальное я имею одно преимущество в том, что
он делает все зависимости зависимыми
насмешливый ведут себя в том же самом
способ, который я считаю довольно приятным, и я
думаю, что это хорошая точка
чтобы закончить этот эпизод, он становится любопытным
если у вас есть какие-либо вопросы
путаницы или странствия или предложения
где мы должны идти дальше, просто опубликуем
вопрос ниже в поле комментария
или если вы являетесь покровителем, вы можете опубликовать его
в форуме funfun есть ссылка в
описание эпизода для темы
посвященный обсуждению именно этого
эпизод, который вы только что просмотрели эпизод
веселой функции я выпускаю эти
каждый понедельник утром О 800 GMT, если вы
смотрят из будущего, вы можете
просмотрите эпизод следующей недели здесь uh
и если вы смотрите от настоящего
вы можете нажать здесь, чтобы подписаться так, чтобы
вы не пропустите этот эпизод, вы также можете
включить уведомления в приложении YouTube
если вы забывчивы
Я не буду MPJ до следующего утра понедельника пребывания
любопытный
Please follow and like us:

Be First to Comment

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