WikiDer > Жасмин (среда тестирования JavaScript)
Эта статья слишком полагается на Рекомендации к основные источники. (Сентябрь 2012 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
Разработчики) | Pivotal Labs |
---|---|
изначальный выпуск | 14 сентября 2010 г.[1] |
Стабильный выпуск | 3.6.0 / 24 июля 2020 г.[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]
Смотрите также
- Список библиотек JavaScript
- Список фреймворков модульного тестирования
- Mocha (фреймворк JavaScript)
- QUnit
Рекомендации
- ^ Дэвис В. Франк. "Жасмин 1.0 выпущен". Pivotal Labs. Получено 11 февраля 2014.
- ^ «Релизы». Получено 25 августа 2020.
- ^ "жасмин / MIT.LICENSE". GitHub. Получено 25 апреля 2017.
- ^ https://jasmine.github.io/
- ^ https://github.com/pivotal/jasmine/wiki/Background
- ^ Страница проекта GitHub JsUnit
- ^ а б c d е Рагонха, Пауло (2013). Тестирование Jasmine JavaScript. Packt Publishing. ISBN 978-1782167211.
- ^ Хан, Эван (2013). Тестирование JavaScript с помощью Jasmine. O'Reilly Media. ISBN 978-1449356378.
- ^ «Простой проект».
- ^ "Карма Жасмин".
- ^ "Жасмин против мокко". Марко Франссен. Получено 13 февраля 2017.
- ^ а б «Сравнение: Жасмин против Мокко против QUnit | StackShare». Получено 13 февраля 2017.