Новые серии ? 2018 года подряд ? Барбоскины ✔️ Сборник мультфильмов
Зміст:
Ми визначили пріоритети принципів архітектури, орієнтованих на обслуговування Обернено. Це означає, що ми маємо невеликі компоненти, що підтримуються, з чітко визначеними обов'язками. Вони спілкуються один з одним (в основному), через передачу репрезентативних станів, або REST, API.
Це забезпечує гнучкість і служить нам добре, за винятком одного важливого аспекту: Тестування. Під час тестування слід уникати:
- Залежність від зовнішніх служб, що працюють на одній машині.
- Повільні тести.
Оскільки програми за своєю суттю покладаються на зовнішні служби, дуже важливо мати стратегію тестування для цих залежностей.
Нещодавно ми почали використовувати Bypass, і я поясню, як ми приїхали туди і зокрема, як ми його використовуємо.
Минуле
Макет методів і повернення деяких прикладних даних, таких як:
Це було (і я вважаю, що все ще є) “шлях” у світі Ruby / Rails. На жаль, це сприяє поганій поведінці, що найкраще пояснюється тут Хосе Валімом.
Потім ми почали використовувати ExVCR, який є великою бібліотекою, але має аналогічні недоліки, як макет / заглушки: він заохочує лінь і не сприяє розмежуванню проблем, які є критичними для чітко визначених API. ExVCR дозволяє «записувати» та «відтворювати» дані реального життя. Її дуже легко інтегрувати (включаючи кілька рядків у вашому тесті і про все інше). Але в ідеалі ви повинні думати про зовнішні залежності в тестах, а не абстрагуватися. Це може бути ще й доцільним вибором для сценаріїв, коли поведінку кінцевої точки слід перевірити з мінімальними накладними витратами (ми використовуємо її для тестування викликів служб Amazon AWS Services, таких як S3).
Введіть адаптери
Адаптери відмінно працюють і сприяють обговоренню контрактів API та чітко визначеним кордонам зв'язку. Ми досі використовуємо цей підхід, особливо коли адаптер є більш складним (наприклад, сокет JSON-RPC).
Це виглядає так:
Але для простих кінцевих точок HTTP адаптери здаються великою роботою і мають великий недолік: вони залишають бібліотеки, які вони споживають, з рівняння тестування. Якщо що-небудь у бібліотеках HTTP або JSON змінюється, тести його не впізнать. Кількість критично важливого для виробництва коду, який не перевіряється цим підходом, є неприйнятним.
Сьогодні і майбутнє
Обхід дозволяє запустити дуже простий веб-сервер в тестах, які моделюють зовнішні служби, які ми використовуємо.
Тепер ми можемо протестувати весь стек, включаючи бібліотеку HTTP, бібліотеку кодування / декодування JSON і механізми аутентифікації. Обхідний README добре написаний, тому я заощаджую деталі впровадження. Проте ми трохи змінюємо, як ми його використовуємо, щоб зберегти тести короткими і читабельними:
По-перше, ми іноді хочемо звертатися до Facebook, коли тести виконуються як повний пакет інтеграції. Ми робимо це нерегулярно, щоб забезпечити функціонування API Facebook на наші очікування. Додавання
- включають інтеграцію
до
тест суміші
не імітує API, але замість цього викликає зовнішню службу (рядки 5, 7).
Ми явні, коли ми моделюємо запити до зовнішніх служб, так що кожен тест, який використовує обхід, повинен мати
@tag facebook_bypass
(рядок 7).
Нарешті,
handle_fb
функція (рядки 30–39) називається (з урахуванням того, що
request_path
відповідності). Мені подобається збігатися в голові функції, оскільки це робить явний шлях, на який ми реагуємо, і дозволяє визначити різні функції для різних шляхів.
Отже, обхід виконується тільки з тестами з тегами
@tag: обхід
і коли ми не керуємо нашим інтеграційним пакетом. Ще одна річ, яку ми робимо під час налаштування Bypass, дозволяє тегу передавати ідентифікатор сторінки (рядки 8, 20). Так ось як тест, який використовує обхід виглядає у всій красі:
Як бачите,
facebook_bypass
тег робить явним, що ми імітуємо API (якщо ми не в режимі інтеграції). Це дозволяє нам передавати інформацію до модельованого API, і дуже просто повторно використовувати той же конфігурацію обходу для різних тестів.
Сподіваюся, це допоможе вам перевірити зовнішні API. Ви можете знайти мене на Twitter (див. Нижче), якщо у Вас виникнуть додаткові запитання.
Рок ось-ось оголяться на балерах
HBO серія Ballers вступає в другий сезон шоу, який, як ви знаєте, зосереджується на чому-небудь у світі спорту, а також деякі інші речі в світі спортивного бізнесу, але в основному це засіб для того, щоб носити костюми. Тут, у трохи відмінного маркетингу для деяких аудиторій, які, безумовно, не мали уявлення про це.
Дрейк ось-ось має свій перший удар з "гарячою лінією"
З "гарячою лінією Bling", Drake має # 2 пісню в країні. Кількість хітів, які Дрейк набрав протягом всієї своєї кар'єри, майже комічний, тому що він викинув 100 пісень на Hot 100 в Billboard. бути одним. ...
Ця програма допоможе вам знайти найближчі автоматизовані зовнішні дефібрилятори
Відомо, що автоматизовані зовнішні дефібрилятори (AED) можуть допомогти врятувати життя людям, які переживають раптову зупинку серця. Проте не завжди відомо, де можна знайти АЗД поза межами медичної установи. Тепер це може змінити нове додаток під назвою AED-SOS. 9 листопада 2015 р. Дослідники американської H ...