Press "Enter" to skip to content

The BEST way to do mocking — FunFunFunction #8


дождь идет вне этого, это
действительно хорошая погода, чтобы сидеть внутри и делать
функция видео привет здесь — пара
недель назад я сделал видео о том, как
чтобы ваша команда провела модульное тестирование в
одна часть этого видео я говорил о
как сделать Маки и в сегодняшнем видео я
хотел бы показать вам еще несколько
примеры, показывающие, как я это делаю
издевается над этим названием этого видео
что это лучший способ сделать насмехаясь
но это действительно ложь, это просто
как я издеваюсь, но у меня было много
успех с ним у вас будет в основном
судить сами, если вы думаете, что это
это хорошая идея или если вы ошибаетесь да
у вас есть образец кода, который я создал
приложение, чтобы убить огни в этой комнате, чтобы я
есть куча Philips hue lights в моем
домой вы можете управлять ими через
через приложение это действительно круто, Хью также
API, который мы собираемся использовать сегодня для
продемонстрировать некоторые модульные тесты в издевательствах
вы видите, что у меня это белое
огни в моем лице, когда я записываю
и когда я, когда записываю, хочу
выключите свет, чтобы сделать
освещение вполне предсказуемо, поэтому
действительно переключается, поэтому сегодня у меня есть
создал небольшую утилиту командной строки для
делайте это быстро, и это так , как это работает
Я просто пишу огни смерти
он говорит, что не аутентифицирован, пожалуйста, нажмите
кнопку на вашем мосту и запустите это
сценарий снова, поэтому мне придется перейти
и нажмите кнопку на этом мосте
доказать , что у меня есть физический доступ к
Мост сделал теперь, я просто пишу ваши огни
снова, и теперь он аутентифицирован и теперь
наблюдайте за лампой, которая является
полностью программного обеспечения, чтобы это немного
API сначала взаимодействует с тремя вещами
API-интерфейс оттенка, конечно, с помощью API-интерфейса hue
он создает имя пользователя оттенка, которое он сохраняет
в файловой системе он также записывает
что он делает с консолью
мы будем ссылаться на код, который
делает все эти вещи , как ядро и охладитель
то, что мы тестируем, является единицей
в нашем модуле тестируйте API-интерфейс консоли hue
файловая система — это не то, что мы пишем
тесты, поскольку мы предполагаем, что они работают
мы собираемся сослаться на
услуги, которые находятся вокруг
мы не тестируем как оболочку, поэтому давайте
немного взгляните на эту маленькую
проект Я поставил его на github, вы можете
найти ссылку в этом шоу-описании
прежде чем мы начнем, обратите внимание, что это
не учебник, это эскиз к
сообщить идею, чтобы не попасться
в деталях , а не просто пытаться
сосредоточиться на общей идее, чтобы мы
пара файлов здесь у нас есть тесты
насмешливые, которые являются нашими модульными испытаниями, мы
посмотрим на них немного, и мы
также см. core и Cheryl здесь давайте
взгляд на ядро первого первым делом
что вы заметите, что там
не требуются заявления сверху
вместо этого все, что ядро
потребности со стороны API оттенков
определить системную консоль здесь
в сфере услуг — это тот материал, который
живет вне ядра в оболочке, если
вы смотрите здесь в строке 3, вы видите, что
мы читаем из файла, это просто
нормальный файл чтения FS FS, но вместо
требуется, чтобы он вводился как
собственность на объект услуг и
это общая идея, остальная часть
кода в этом файле на самом деле нет
важно, давайте посмотрим, где
объект службы создает оболочку, поэтому
это оболочка, которую мы видим здесь.
ядро, а затем мы видим
FS и
известный Оттенок API и консоль просто быть установлена
как свойства здесь по услугам
объект и объект службы просто
здесь приводится в качестве аргумента для
ядро в реальном не-примерном приложении мы бы
вероятно, есть реальные аргументы в том, что
перешел к ядру, но вы просто
должны представить, что
и просто быстро, чтобы дать вам
смысл всего приложения это
CLI-работа JS, которая в основном является
бегун приложения — вещь, которая запускается
когда вы входите в убитое убитое
команды подсветки, и это просто требует
оболочка и называет это тем, что это конечно
мы делаем все это, чтобы упростить
выбить все услуги в
shell давайте посмотрим на тест Jas
прежде всего, нам нужна лента для
если вы еще не видели ленту
это похоже на тест-бегун
мокка только проще, мы требуем Zenon Jas
если вы не знаете, что это такое
мы в основном используем его для
создавать поддельные функции, которые возвращают поддельные
ценности проще, и нам требуется ядро
помните, что ядро ​​- это единица, в которой мы находимся
тестирования в наших модульных тестах мы не
действительно заботиться об услугах в
shell , это чья-то проблема, мы
забота о том, как ядро взаимодействует с этими
услуг, и это то, что мы тестируем
давайте пройдем тест прессы здесь
в строке 37 мы делаем фактический код
ядро, и мы проходим в
услуги как объект службы, который
мы создаем здесь в строке 31, мы имеем
хелпер для этого, потому что мы делаем это в
каждый тест , так что давайте посмотрим на что
и создавать службы топает здесь
отличная остановка обслуживания просто делает объект
который содержит макетные версии
услуги в оболочке, которую сонатор останавливает
вместо реальных реализаций здесь
обратите внимание, что мы только издеваемся над
вещи, которые мы знаем, необходимы в
тестирует реальный узел библиотеки FS
больше методов, чем это, но мы только заботимся
об этих двух, поскольку это
только те, которые используются нашим кодом, так
нет абсолютно никакой необходимости
общая макетная версия ваших объектов
насмешливое это это отнимает много времени и
так что вы должны сделать это так же мало, как
возможно , так что давайте вернемся вниз к
контрольная работа
если вы посмотрите здесь в строке 35, это
где мы перехватываем автомобиль для осмотра
позвольте мне разделить это на две строки для вас
здесь, когда ядро пытается прочитать
имя пользователя, сохраненное в файловой системе,
вы получите ошибку здесь, а затем мы
здесь подтверждено, что ядро
правильно обрабатывает эту ошибку и
отвечает на это, вызывая зарегистрированный
пользователя в API, и это все, что
шаблон вы отделите свой код на два
разделяет ядро, которое является вашим подразделением, которое
вы проверяете логику, которая
без зависимости, а затем у вас есть
оболочка, которая является всеми зависимостями с
побочные эффекты и прочее, и вы вводите
что таким образом вы можете в своем подразделении
тест- индекс — полностью поддельная оболочка и
то он проверяет оболочку, если ядро
правильно его называют
разные, и я склонен писать два
разные тесты в каждый час, но
Я обычно возвращаюсь к этому ядру
и семантика оболочки, я думаю, это потому, что
это очень легко рассуждать, и это
не имеет какой-то странной магии, это просто
объектов есть литые рамки, которые
MOC требуют заявлений и тому подобное
что, но это много волшебства, и я
не знаю, я всегда попадаю в беду
когда я использую магию при программировании мне нравится
простое семантическое ядро ​​оболочки ядра
тестируемого устройства, и вы
тестируя, что он правильно взаимодействует с
оболочка все это, как обычно,
вдохновленный кем- то гораздо умнее, чем
меня
Гэри Бернхардт и его магазины
также связанный ниже, это очень здорово
просто смотрели эпизод веселья
функции еженедельного шоу, где мы пытаемся
становятся более возбужденными и уверенными в себе
программирование, исследуя всю мудрость
дикие идеи и развлечения не пропустите
в следующем эпизоде подписаться до
следующий понедельник останется любопытным
вы
Please follow and like us:

Be First to Comment

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