Жасмин (программное обеспечение)
![]() | |
Разработчик(и) | Основные лаборатории |
---|---|
Первоначальный выпуск | 14 сентября 2010 г [ 1 ] |
Стабильная версия | 4.0.1
/ 22 февраля 2022 г [ 2 ] |
Репозиторий | |
Написано в | JavaScript |
Операционная система | Кросс-платформенный |
Тип | Юнит-тест |
Лицензия | МОЯ лицензия [ 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 выглядит как код ниже, где описать() описывает набор тестов, а it() — отдельную спецификацию теста. Имя «it()» соответствует идее разработки, основанной на поведении , и служит первым словом в имени теста, которое должно представлять собой полное предложение. Использование соответствует синтаксису, аналогичному синтаксису RSpec .
Код ниже проверяет эту функцию
function helloWorld() {
return 'Hello world!';
}
и проверяет, что его вывод действительно является текстом «Hello world!».
describe('Hello world', function() {
it('says hello', function() {
expect(helloWorld()).toEqual('Hello world!');
});
});
Jasmine предоставляет богатый набор встроенных средств сопоставления. В приведенном выше примере toEqual проверяет равенство между значением, возвращаемым функцией helloWorld(), и значением «Hello world!». нить. Это то же самое, что и утверждения, используемые в других средах тестирования. Сопоставители Jasmine возвращают логическое значение: true, если ожидание соответствует (способ указать, что тест пройден), или false, если ожидание не соответствует. [ 7 ] Хорошей практикой является помещение одного ожидания в отдельную спецификацию теста it().
Другие встроенные средства сопоставления включают toBe, toBeTruthy, toBeFalse, toContain, toBeDefined, toBeUndefine, toBeNull, toBeNaN, toBeGreaterThan, toBeLessThan, toBeCloseTo. [ 8 ] Средство сопоставления идентификаторов toBe проверяет, являются ли две вещи одним и тем же объектом. Сопоставители условий toBeTruthy, toBeFalsy оценивают, является ли что-то истинным или ложным, а toBeDefined, toBeUndefine проверяют, является ли что-то определенным или неопределенным. Как следует из названия, toBeNull проверяет, является ли что-то нулевым, а toBeNaN проверяет, не является ли что-то числом ( NaN ). Средство сопоставления точности toBeCloseTo принимает два параметра и проверяет, близко ли число к первому параметру, учитывая определенную десятичную точность, указанную вторым параметром. Сопоставитель toContain используется для проверки того, что элемент, объект или подстрока содержится в массиве, списке или строке.
Специальный встроенный механизм сопоставления toThrow используется для проверки того, что было создано исключение. [ 7 ] Приведенный ниже код проверяет, что выдается «Некоторое исключение».
describe('Expect to throw an exception', function() {
it('throws some exception', function() {
expect( function(){ throw('Some exception'); }).toThrow('Some exception');
});
});
Jasmine имеет ряд других функций, таких как пользовательские средства сопоставления, шпионы и поддержка асинхронных спецификаций.
Жасминовые тестовые бегуны
[ редактировать ]Jasmine поставляется со встроенным средством запуска тестов. Тесты Jasmine могут запускать тесты браузера, включив простой SpecRunner.html. [ 9 ] файл или используя его в качестве средства запуска тестов командной строки, поддерживаемого для различных языков, таких как Nodejs, Python, Ruby , или (старый способ) с помощью Karma, [ 10 ] простой инструмент для запуска тестов JavaScript.
Сравнение Жасмина и Мокко
[ редактировать ]Mocha — еще одна популярная среда тестирования Javascript. Сравнение Жасмина и Мокко приведено в таблице ниже. [ 11 ]
Жасмин | Мокко |
---|---|
Жасмин приходит с тестовыми двойниками с помощью шпионов. | Mocha не поставляется с двойной тестовой библиотекой и обычно использует внешнюю библиотеку, например Sinon. |
У Jasmine есть утилита командной строки для запуска тестов. | У Mocha есть утилита командной строки для запуска тестов. |
В Жасмин встроены утверждения. | Mocha не имеет библиотеки утверждений и использует Chai для утверждений. |
Преимущества
[ редактировать ]- Цель Jasmine — быть независимой от браузера, фреймворка, платформы и языка. [ 12 ]
- Помимо разработки на основе поведения, Jasmine также поддерживает разработку на основе тестирования . [ 12 ]
См. также
[ редактировать ]- Список библиотек JavaScript
- Список фреймворков модульного тестирования
- Мокко (фреймворк JavaScript)
- куни
- Фреймворк JavaScript
- библиотека JavaScript
Ссылки
[ редактировать ]- ^ Фрэнк, Дэвис В. «Выпущена версия Jasmine 1.0» . Ключевые лаборатории . Архивировано из оригинала 22 февраля 2014 года . Проверено 11 февраля 2014 г.
- ^ «Выпускает · жасмин/жасмин» . github.com . Проверено 5 апреля 2022 г.
- ^ "жасмин/MIT.ЛИЦЕНЗИЯ" . Гитхаб . Проверено 25 апреля 2017 г.
- ^ "Дом" . жасмин.github.io .
- ^ «Предпосылка · жасмин/Жасмин Wiki» . Гитхаб .
- ^ Страница проекта GitHub JsUnit
- ^ Перейти обратно: а б с д и Рагонья, Пауло (2013). Жасминовое тестирование JavaScript . Издательство пакетов. ISBN 978-1782167211 .
- ^ Хан, Эван (2013). Тестирование JavaScript с помощью Jasmine . О'Рейли Медиа. ISBN 978-1449356378 .
- ^ «Простой проект» . Гитхаб .
- ^ «Карма Жасмин» . 16 июня 2022 г.
- ^ «Жасмин против Мокко» . Марко Франссен . Проверено 13 февраля 2017 г.
- ^ Перейти обратно: а б «Сравнение: Жасмин, Мокка и QUnit | StackShare» . Проверено 13 февраля 2017 г.