В этой статье слишком много ссылок на первоисточники . ( Сентябрь 2012 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Разработчики) | Pivotal Labs |
---|---|
Первый выпуск | 14 сентября 2010 г . [1] |
Стабильный выпуск | 3.7.1 / 19 марта 2021 г . [2] |
Репозиторий | |
Написано в | JavaScript |
Операционная система | Кроссплатформенность |
Тип | Модульный тест |
Лицензия | Лицензия MIT [3] |
Веб-сайт | жасмин |
Jasmine - это среда тестирования с открытым исходным кодом для JavaScript . [4] Он предназначен для работы на любой платформе с поддержкой JavaScript, чтобы не вторгаться в приложение или IDE и иметь простой для чтения синтаксис. На него сильно влияют другие среды модульного тестирования, такие как ScrewUnit, JSSpec, JSpec и RSpec . [5]
История [ править ]
Разработчики из Pivotal Labs для Jasmine ранее разработали аналогичную среду модульного тестирования под названием JsUnit до активной разработки Jasmine. [6]
Особенности [ править ]
- Поддерживает асинхронное тестирование. [7]
- Использует «шпионов» для реализации тестовых двойников . [7]
- Поддерживает тестирование внешнего кода с помощью внешнего расширения Jasmine под названием Jasmine-jQuery. [7]
Использование [ править ]
Жасмин стремится к тому, чтобы ее было легко читать. Простой тест hello world выглядит как приведенный ниже код, где description () описывает набор тестов, а it () является индивидуальной спецификацией теста. Имя «it ()» следует идее разработки, управляемой поведением, и служит первым словом в имени теста, которое должно быть полным предложением. Использование соответствует синтаксису, аналогичному RSpec .
Приведенный ниже код проверяет эту функцию.
function helloWorld () { return "Hello world!" ; }
и проверяет, действительно ли это текст «Hello world!».
описать ( 'Привет, мир' , function () { it ( 'Привет!' , function () { ожидать ( helloWorld ()). toEqual ( 'Привет, мир!' ); }); });
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] Приведенный ниже код подтверждает, что выброшено «Некоторое исключение».
описать ( 'Ожидается выброса исключения' , function () { it ( 'Выдает какое-то исключение' , function () { expect ( function () { throw ( 'Некоторое исключение' ); }). toThrow ( 'Некоторое исключение' ) ; }); });
У Jasmine есть ряд других функций, таких как настраиваемые сопоставления, шпионы и поддержка асинхронных спецификаций.
Жасмин тестовые бегуны [ править ]
Жасмин поставляется со встроенным средством запуска тестов. Тесты Jasmine могут запускать тесты браузера, включая простой файл SpecRunner.html [9] или используя его в качестве средства запуска тестов командной строки, поддерживаемого для различных языков, таких как Nodejs, Python, Ruby или (старый способ) с использованием Karma, [10] простой инструмент запуска тестов JavaScript.
Сравнение между жасмином и мокко [11] [ править ]
Mocha - еще один популярный фреймворк для тестирования Javascript. Сравнение между жасмином и мокко приведено в таблице ниже.
Жасмин | Мокко |
---|---|
Жасмин приходит с тестовыми двойниками с помощью шпионов. | Mocha не поставляется с тестовой двойной библиотекой и обычно использует внешнюю библиотеку, такую как Sinon. |
У Жасмин есть утилита командной строки для запуска тестов. | У Mocha есть утилита командной строки для запуска тестов. |
У Жасмин встроены утверждения. | Mocha не имеет библиотеки утверждений и использует Chai для утверждений. |
Преимущества [ править ]
- Цель Jasmine - быть независимыми от браузера, фреймворка, платформы и языка. [12]
- Помимо разработки, основанной на поведении, Jasmine также поддерживает разработку, основанную на тестировании . [12]
См. Также [ править ]
- Список библиотек JavaScript
- Список фреймворков модульного тестирования
- Mocha (фреймворк JavaScript)
- QUnit
Ссылки [ править ]
- ^ Дэвис В. Франк. "Жасмин 1.0 выпущен" . Pivotal Labs . Проверено 11 февраля 2014 .
- ^ "Релизы · жасмин / жасмин" . github.com . Проверено 13 апреля 2021 .
- ^ "жасмин / MIT.LICENSE" . GitHub . Проверено 25 апреля 2017 года .
- ^ https://jasmine.github.io/
- ^ https://github.com/pivotal/jasmine/wiki/Background
- ^ Страница проекта GitHub JsUnit
- ^ а б в г д Рагонха, Пауло (2013). Тестирование Jasmine JavaScript . Packt Publishing. ISBN 978-1782167211.
- ^ Хан, Эван (2013). Тестирование JavaScript с помощью Jasmine . O'Reilly Media. ISBN 978-1449356378.
- ^ «Простой проект» .
- ^ "Карма Жасмин" .
- ^ "Жасмин против Мокко" . Марко Франссен . Проверено 13 февраля 2017 года .
- ^ a b «Сравнение: Жасмин против Мокко против QUnit | StackShare» . Проверено 13 февраля 2017 года .
Внешние ссылки [ править ]
- Сайт жасмин
- Жасмин на GitHub
- JSSpec
- JSpec
- Винтовой блок