Жасмин (среда тестирования JavaScript) - Jasmine (JavaScript testing framework)

Жасмин
Логотип jasmine.svg
Разработчики)Pivotal Labs
изначальный выпуск14 сентября 2010 г.; 10 лет назад (2010-09-14)[1]
Стабильный выпуск
3.6.0 / 24 июля 2020 г.; 3 месяца назад (2020-07-24) [2]
Репозиторийhttps://github.com/jasmine/jasmine
Написано вJavaScript
Операционная системаКроссплатформенность
ТипМодульный тест
ЛицензияЛицензия MIT[3]
Интернет сайтhttps://jasmine.github.io/

Жасмин является Открытый исходный код рамки тестирования для JavaScript.[4] Он нацелен на работу на любой платформе с поддержкой JavaScript, чтобы не вторгаться в приложение или IDE, и иметь простой для чтения синтаксис. На него сильно влияют другие среды модульного тестирования, такие как ScrewUnit, JSSpec, JSpec и RSpec.[5]

История

Разработчики Pivotal Labs для Jasmine ранее разработали аналогичную среду модульного тестирования под названием JsUnit до активной разработки Jasmine.[6]

Функции

  • Поддерживает асинхронное тестирование.[7]
  • Использует «шпионов» для реализации тестовые двойники.[7]
  • Поддерживает тестирование внешнего кода с помощью внешнего расширения Jasmine под названием Jasmine-jQuery.[7]

использование

Жасмин стремится к тому, чтобы ее было легко читать. Простой Привет, мир test выглядит как приведенный ниже код, где description () описывает набор тестов, а it () является отдельной спецификацией теста. Название "it ()" следует идее поведенческая разработка и служит первым словом в имени теста, которое должно быть полным предложением. Использование следует синтаксису, аналогичному синтаксису RSpec.

Приведенный ниже код проверяет эту функцию.

функция Привет, мир() {  возвращаться 'Привет, мир!';}

и проверяет, действительно ли это текст «Hello world!».

описывать('Привет, мир', функция() {  Это('говорит привет', функция() {    ожидать(Привет, мир()).в равной('Привет, мир!');  });});

Jasmine предоставляет богатый набор встроенных сопоставителей. В приведенном выше примере toEqual проверяет равенство между значением, возвращаемым функцией helloWorld (), и сообщением «Hello world!». нить. Это то же самое, что и утверждения используется в других средах тестирования. Сопоставители Jasmine просто возвращают логическое значение: истина, если ожидание совпадает (способ указать, что тест прошел), или ложь, если ожидание не совпадает.[7] Хорошая практика - поместить одно ожидание в отдельную спецификацию теста it ().

Другие встроенные средства сопоставления включают toBe, toBeTruthy, toBeFalsy, toContain, toBeDefined, toBeUndefined, toBeNull, toBeNaN, toBeGreaterThan, toBeLessThan, toBeCloseTo.[8] Средство сопоставления идентичностей toBe проверяет, являются ли две вещи одним и тем же объектом. Сопоставители условий toBeTruthy, toBeFalsy оценивают, является ли что-то истинным или ложным, а toBeDefined, toBeUndefined проверяют, определено ли что-то или не определено. Судя по названию, toBeNull проверяет, является ли что-то нулевым, а toBeNaN проверяет, не является ли что-то числом (NaN ). Средство сопоставления точности toBeCloseTo принимает два параметра и проверяет, близко ли число к первому параметру, учитывая определенную степень десятичной точности, указанную вторым параметром. Matcher toContain используется для проверки того, что элемент, объект или подстрока содержится в массиве, списке или строке.

Специальный встроенный сопоставитель toThrow используется для проверки того, что возникло исключение.[7] Приведенный ниже код подтверждает, что выбрано «Некоторое исключение».

описывать('Ожидайте выброса исключения', функция() {  Это('выдает какое-то исключение', функция() {    ожидать( функция(){ бросать('Некоторое исключение'); }).бросать('Некоторое исключение');  });});

У Jasmine есть ряд других функций, таких как настраиваемые сопоставители, шпионы и поддержка асинхронных спецификаций.

Жасмин тестовые бегуны

Жасмин поставляется со встроенным средством запуска тестов. Тесты Jasmine могут запускать тесты браузера, включая простой SpecRunner.html.[9] файл или используя его в качестве средства запуска тестов командной строки, поддерживаемого для различных языков, например Nodejs, Python, Ruby, или (старый способ) с помощью Кармы,[10] простой инструмент запуска тестов JavaScript.

Сравнение жасмина и мокко[11]

Мокко - еще один популярный фреймворк для тестирования Javascript. Сравнение жасмина и мокко приведено в таблице ниже.

ЖасминМокко
Жасмин приходит с тестовыми двойниками с помощью шпионов.Mocha не поставляется с тестовой двойной библиотекой и обычно использует внешнюю библиотеку, такую ​​как Sinon.
Жасмин имеет утилита командной строки для запуска тестов.У Mocha есть утилита командной строки для запуска тестов.
У Жасмин есть встроенные утверждения.Mocha не имеет библиотеки утверждений и использует Chai для утверждений.

Преимущества

  • Цель Jasmine - быть независимыми от браузера, фреймворка, платформы и языка.[12]
  • Помимо разработки, основанной на поведении, Jasmine также поддерживает разработка через тестирование.[12]

Смотрите также

Рекомендации

  1. ^ Дэвис В. Франк. "Жасмин 1.0 выпущен". Pivotal Labs. Получено 11 февраля 2014.
  2. ^ «Релизы». Получено 25 августа 2020.
  3. ^ "жасмин / MIT.LICENSE". GitHub. Получено 25 апреля 2017.
  4. ^ https://jasmine.github.io/
  5. ^ https://github.com/pivotal/jasmine/wiki/Background
  6. ^ Страница проекта GitHub JsUnit
  7. ^ а б c d е Рагонха, Пауло (2013). Тестирование Jasmine JavaScript. Packt Publishing. ISBN  978-1782167211.
  8. ^ Хан, Эван (2013). Тестирование JavaScript с помощью Jasmine. O'Reilly Media. ISBN  978-1449356378.
  9. ^ «Простой проект».
  10. ^ "Карма Жасмин".
  11. ^ "Жасмин против мокко". Марко Франссен. Получено 13 февраля 2017.
  12. ^ а б «Сравнение: Жасмин против Мокко против QUnit | StackShare». Получено 13 февраля 2017.

внешняя ссылка