jasmine framework tutorial including jasmine jquery with examples
Ця стаття висвітлює основи тестування жасмину та його конструкції. Також дізнайтеся про пакет Jasmine-Jquery, який поширює жасмин на тестування програм Jquery:
Ми дізналися все про Карма у нашому попередньому уроці цієї серії.
У цьому підручнику ми дізнаємося, як використовувати Jasmine для написання тестів для веб-додатків JavaScript, а також дізнаємося, як використовувати пакет на основі вузлів Jasmine-Jquery для тестування веб-програми Jquery.
Тут ми в основному зупинимось на основних конструкціях жасмину для письмових тестів.
різниця між soapui та soapui pro
Давайте розпочнемо!!
Що ви дізнаєтесь:
Що таке рамки тестування?
Тестові рамки - це набори програм або пакетів, що полегшують тестування іншої програми для забезпечення її якості. Кожна платформа програмування має власну структуру тестування, про що ви, мабуть, дізналися з нашого попереднього підручника.
Існують різні набори тестів, які можна проводити на будь-якій програмній системі. Приклади такі тести включають модульне тестування, наскрізне (e2e) тестування тощо. Перевірка тут для більш детальної інформації.
Приклади До складу тестових фреймворків для додатків JavaScript входять Mocha, Jasmine, intern, jest, Qunit тощо.
Вступ до Жасминових рамок
У сучасному сценарії доступні різні підходи до розвитку. З них два найпопулярніші підходи до розробки включають розробку, керовану тестом (TDD), та розробку, керовану поведінкою (BDD).
Тестова розробка - це підхід до розробки, де ми спочатку пишемо тести, а потім запускаємо їх. Кожне тестування не вдається виконати найперше, оскільки функції, які він використовує, ще не написані.
Потім ми пишемо функції та повторюємо тести. Тут деякі тести провалюються, а інші проходять. Ми продовжуємо переробляти код, щоб усі тести пройшли.
Розвиток поведінки також керується тим самим підходом. Єдина відмінність полягає в тому, що BDD написаний для задоволення власників програмного забезпечення (орієнтованого на клієнта / бізнес), тобто для задоволення функцій програмного забезпечення вимогами бізнесу чи очікуваною поведінкою.
Тоді як TDD створений для задоволення розробників програмного забезпечення, щоб можна було переконатись, що програмні функції, які використовуються для побудови функцій, дають точні результати, стабільні та надійні.
Подивитися тут щоб дізнатись більше про TDD проти BDD.
Jasmine - це тестова структура JavaScript, яка керується поведінкою, що полегшує написання тестів і не залежить від будь-якої іншої структури.
Є два способи використовувати Жасмин для написання тестів. Один із способів - використовувати автономну версію, яка постачається з specRunner.html (яка відображає результати тестування у браузері). Інший спосіб - це просто встановити Жасмин, написати свої тести та запустити його за допомогою тестової програми, як Karma, щоб отримати результати, що відображаються у вікні консолі.
Ми б розглянули обидва способи використання жасмину в нашому майбутньому уроці.
Основні конструкції жасмину для написання тестів
Нижче наведено різні конструкції жасмину для письмових тестів.
Подивимось !!
№1) описує: Ця конструкція використовується для написання набору тестів. Набір тестів - це сукупність декількох тестів. «Описувати» - це сама по собі функція, яка приймає два параметри: Назва набору та функції .
Параметр функції містить колекцію тестів, згрупованих у наборі тестів.
# 2) це: Ця конструкція використовується для написання специфікації тесту. Тестова специфікація - це сукупність конструкцій, які перевіряють певне або найдрібніше очікування для системи.
Як і конструктор опису, він також приймає два параметри: Назва тесту та функції, яка містить твердження, що оцінюють, чи сподівання виконано чи ні.
# 3) очікуйте : Ця конструкція допомагає у тестуванні, чи сповнюються очікування від програмної системи чи ні.
Він приймає параметр, який називається фактичним (тобто результатом, який повертає програмна система), а потім зв’язується з іншою конструкцією, яка називається збігом (очікуваний результат).
# 4) Матчі : Це набір конструкцій, до яких прикута конструкція очікування. Він визначає, чи сподівання виконано чи ні.
Ці конструкції приймають очікуване значення найближчого тесту, що проводиться, і збігають його з фактичним значенням, отриманим під час виконання тесту. Клацніть тут для повного переліку конструкцій збігу жасмину
No5) beforeEach : Це загальноприйнята конструкція, надана Жасмином, щоб допомогти вам тримати свої тести СУХИМИ (не повторюватися). Ця конструкція зазвичай використовується у параметрі функції описуваної конструкції.
Будь-який код всередині запускається один раз перед тим, як специфікації під наборами запускаються. Отже, будь-який код, який ви хочете запускати першим перед усіма специфікаціями в наборі, слід розміщувати тут.
# 6) afterEach: Ця конструкція така ж, як beforeEach, і різниця полягає в тому, що код, який вона містить, запускається після кожного коду після запуску описуваної конструкції.
# 7) це : Ця конструкція є порожнім об'єктом, який може використовуватися для спільного використання значень між 'beforeEach', 'afterEach' і 'it' конструкціями в будь-яких тестових наборах. Кожен набір тестів має власний об'єкт, і перед запуском тестових наборів об'єкт скидається до порожнього.
# 8) xdescribe : Ця конструкція використовується для вимкнення програмних пакетів. Це просто говорить учаснику тесту пропустити набір тестів, а отже, його результат не відображається і не враховується.
# 9) хіт : Ця конструкція використовується для позначення специфікації в наборі як очікуваної специфікації. Очікувана специфікація - це специфікація, яка не запускається, але їх імена відображатимуться в результаті тесту як очікувані.
Крім того, якщо в будь-якій специфікації викликається функція, що очікує на розгляд, тоді специфікація позначається як специфікація, що очікує на розгляд. Будь-яка специфікація, оголошена без тіла функції, також позначена як очікувана.
swf файл не відкривається в chrome
# 10) шпигун : Ця конструкція використовується для створення шпигуна жасмину. Шпигуни - насмішки. Імітації - це підроблені об'єкти, створені для представлення або імітації реального об'єкта. Знущання потрібні, щоб запобігти накладним витратам на створення реального об'єкта, який вони представляють.
Суть модульного тестування коду полягає в тому, щоб побачити, як функція поводиться за кількох умов, незалежних від інших підключених блоків або буде підключена до неї.
Таким чином, ми проводимо тестування інтерфейсного блоку, щоб побачити, як поводитиметься блок фронтального кінця нашого програмного продукту незалежно від інших інтерфейсних блоків, які будуть підключені або підключені до нього.
Під час цього тесту ми здійснюємо виклики різних аргументів та функцій, які можуть залежати від інших функцій та об'єктів, таких як мережеві з'єднання, джерела даних та файли.
Щоб задовольнити ці залежності (щоб ми могли провести інтерфейсне тестування модулів), потрібно надати необхідні ресурси. Отже, ми приймаємо глузування, щоб імітувати реальні об’єкти та уникати накладних витрат на їх фактичне створення.
Зверніть увагу, що на простому рівні spyOn використовується для перевірки того, чи справді викликається залежна функція, і ця залежна функція може бути простою функцією, яка визначена на об'єкті, який ми шпигуємо.
Функція spyOn приймає два параметри: об'єкт, який перевіряється, та функцію залежності, яку він містить, перевіряється, щоб переконатися, що наша функція викликає його.
Шпигуни існують у наборі або специфікації, в якій це визначено. Після виконання набору або специфікації шпигун перестає існувати.
# 11) createSpy: Ця конструкція служить тій самій меті, що і spyOn, але різниця полягає в тому, що ця функція дозволяє замінити залежну функцію на підроблену для тестування.
Чому я повинен це робити? Це корисно, коли вихідна залежність також залежить від інших ресурсів, які недоступні в контексті тесту.
Ця функція доступна за допомогою об’єкта Jasmine з крапкою, тобто Jasmine.createSpy (параметри). Він приймає лише один параметр, який є рядком, що представляє ім'я залежності, для якої ми створюємо макет.
Зверніть увагу, що після створення шпигуна шпигун першого дзвінка повертається невизначеним, оскільки перший дзвінок вважається його тренуванням. Потім, після наступних викликів, функція повертає фактичне значення. Дивіться більше деталей, коли ми досліджуємо це нижче.
Тест на жасмин - подвійна функція
Конструкції spyOn та createSpy роблять можливим створення макетів (для залежності). Це не що інше, як тестування двох функцій в одному тесті, отже твердження “тестувати подвійну функцію”.
Інше слово, яке можна використовувати для позначення глузувань, - «заглушки».
Матчі-шпигуни: Існує кілька збігів, які відповідають потребі взаємодії зі шпигунами. Вони включають: 'ToHaveBeenCalled' і 'toHaveBeenCalledWith' .
-
- toHaveBeenCalled : Це використовується в специфікації, щоб визначити, чи була викликана залежність, яку шпигували.
- toHaveBeenCalledWith : Це використовується в специфікації, щоб визначити, що залежність, яку шпигували, була викликана з певним набором параметрів.
Відвідайте тут для детального опису всіх конструкцій жасмину.
створення масиву рядків у Java
Два способи використання жасмину
Є два способи написання тестів на жасмин. Один - використовувати Жасмин як самостійний дистрибутив через specRunner, а інший - використовувати Жасмин разом із тестовим бігуном.
Давайте спочатку розглянемо тестування жасмину за допомогою specRunner.
Як користуватися автономним розподілом жасмину?
Клацніть тут , а потім завантажте автономний дистрибутив, натиснувши на Жасмин-автономний .
Розпакуйте файл у папку проекту. Ви виявите, що він додає ці каталоги до каталогу проекту: lib, src та spec; а також додає ці файли: specRunner.html та MIT.LICENSE.
Каталог lib містить бібліотеку Jasmine, яка виконує тести, що містяться у тестових файлах, доданих до файлу specRunner.html. Файл specRunner.html дозволяє запустити тест і переглянути результат у браузері у форматі веб-сторінки, а не у вікні консолі.
Каталог src містить інтерфейсні вихідні коди, а каталог spec - тестові файли, написані за допомогою тестових наборів Jasmine. За замовчуванням ви можете бачити деякі тестові набори та файли всередині каталогів, але ми не збираємось їх використовувати, ми писали б наші власні тести в наступних підручниках.
Використання жасмину з бігуном
Це другий спосіб використання Жасмин, де ви налаштовуєте тест-бігун, такий як Karma, і подаєте його своїм вихідним файлом та файлом специфікації тесту для запуску тестів.
Потім ви можете або відобразити результати, і створити звіти за допомогою Стамбула, або опублікувати результати тесту на coveralls.io.
Вступ до жасмину-джаквері
Jasmine-Jquery - це пакет вузлів, який допомагає тестувати інтерфейсні коди, побудовані за допомогою jquery. Певним чином, він розширює структуру Jasmine, щоб добре підходити для інтерфейсного тестування Jquery.
Розширення, які він додає до фреймворку Jasmine, включають:
- Набір спеціальних збігів для фреймворку Jquery, таких як toBeChecked, toBeDisabled, toBeEmpty тощо.
- API для обробки приладів HTML, CSS та JSON у наших специфікаціях.
Тепер питання 'що таке API?' API (інтерфейс програмування додатків) - це інтерфейс, який надає вам доступ до певних функцій, для створення яких з нуля може знадобитися час і ресурси.
Інше питання, що таке світильники? Пристосування - це заздалегідь визначені стани об’єкта, які ми зазвичай створюємо під час написання тестів, щоб встановити базову лінію (добре відоме та фіксоване середовище), на якій проводяться тести, щоб зробити результати повторюваними.
Подивитися тут для отримання детальнішої інформації про спеціальні збіги та API.
Висновок
У цьому посібнику ми спробували зрозуміти, що таке фреймворк тестування, і представили Jasmine як структуру тестування JavaScript. Ми розглянули різні конструкції Jasmine, які можна використовувати для написання тестових специфікацій, і нарешті ми представили Jasmine-Jquery - пакет на основі вузлів, який розширює Jasmine, щоб мати можливість тестувати програми Jquery.
Винос
- Структура тестування - це набір програм або пакетів, що полегшують тестування програмного забезпечення для забезпечення якості розробленого програмного забезпечення.
- Jasmine - це поведінковий інструмент розробки, який забезпечує конструкції, що полегшують написання тестових специфікацій для додатків JavaScript.
- Тестова розробка - це підхід до розробки, де ми спочатку пишемо тести, а потім запускаємо їх. Кожне тестування не вдається виконати найперше, оскільки функція, яку він використовує, ще не написана. Потім ми пишемо функції і повторно запускаємо тести. Тут деякі тести провалюються, а інші проходять. Потім ми продовжуємо переробляти код, поки не пройдуть усі тести.
- Поведінково-керований підхід до розробки - це підхід до розробки, при якому складаються тести, щоб переконатись, що функції програмного забезпечення поводяться так, як очікували всі зацікавлені сторони.
- Jasmine-Jquery - це пакет вузлів, який допомагає тестуванню інтерфейсних кодів, побудованих за допомогою Jquery.
Наступний підручник
У нашому майбутньому підручнику ми дослідимо способи використання цих двох інструментів (Жасмин та Карма) для написання тестових специфікацій для типового проекту. Ми також побачимо, як використовувати інші інструменти, такі як gulp, browserify тощо, необхідні для запуску наших тестів.
НАЗАД Підручник | НАСТУПНИЙ підручник
Рекомендована література
- 8 інструментів та механізмів тестування, що керуються найкращою поведінкою (BDD)
- Як залучають тестери до методів TDD, BDD та ATDD
- TDD проти BDD - проаналізуйте відмінності на прикладах
- BDD (Behavio-Driven Development) Framework: Повний навчальний посібник
- Як написати документ про стратегію тестування (із зразком шаблону стратегії тестування)
- 10 найкращих засобів тестування API у 2021 році (SOAP та REST API)
- Підручник з тестування API: повний посібник для початківців
- Підручник із прикладами Python DateTime