Жасмин (фреймворк для тестирования JavaScript) - Jasmine (JavaScript testing framework)
| Разработчики) | Pivotal Labs |
|---|---|
| Первый выпуск | 14 сентября 2010 г . |
| Стабильный выпуск | 3.7.1 / 19 марта 2021 г .
|
| Репозиторий | |
| Написано в | JavaScript |
| Операционная система | Кроссплатформенность |
| Тип | Модульный тест |
| Лицензия | Лицензия MIT |
| Веб-сайт |
жасмин |
Jasmine - это среда тестирования с открытым исходным кодом для JavaScript . Он нацелен на работу на любой платформе с поддержкой JavaScript, чтобы не вторгаться в приложение или среду IDE и иметь простой для чтения синтаксис. На него сильно влияют другие среды модульного тестирования, такие как ScrewUnit, JSSpec, JSpec и RSpec .
История
Разработчики Pivotal Labs для Jasmine ранее разработали аналогичную среду модульного тестирования под названием JsUnit до активной разработки Jasmine.
Функции
- Поддерживает асинхронное тестирование.
- Использует «шпионов» для реализации тестовых двойников .
- Поддерживает тестирование внешнего кода с помощью внешнего расширения Jasmine под названием Jasmine-jQuery.
использование
Жасмин стремится к тому, чтобы ее было легко читать. Простой тест hello world выглядит как приведенный ниже код, где description () описывает набор тестов, а 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 просто возвращают логическое значение: истина, если ожидание совпадает (способ указать, что тест пройден), или ложь, если ожидание не совпадает. Хорошая практика - поместить одно ожидание в отдельную спецификацию теста it ().
Другие встроенные средства сопоставления включают toBe, toBeTruthy, toBeFalsy, toContain, toBeDefined, toBeUndefined, toBeNull, toBeNaN, toBeGreaterThan, toBeLessThan, toBeCloseTo. Устройство сопоставления идентичности toBe проверяет, являются ли две вещи одним и тем же объектом. Сопоставители условий toBeTruthy, toBeFalsy оценивают, является ли что-то истинным или ложным, а toBeDefined, toBeUndefined проверяют, определено ли что-то или не определено. Как следует из названия, toBeNull проверяет, является ли что-то нулевым, а toBeNaN проверяет, не является ли что-то числом ( NaN ). Устройство сопоставления точности toBeCloseTo принимает два параметра и проверяет, близко ли число к первому параметру, учитывая определенную степень десятичной точности, как указано вторым параметром. Matcher toContain используется для проверки того, что элемент, объект или подстрока содержится в массиве, списке или строке.
Специальный встроенный сопоставитель toThrow используется для проверки того, что было создано исключение. Приведенный ниже код подтверждает, что выброшено «Некоторое исключение».
describe('Expect to throw an exception', function() {
it('throws some exception', function() {
expect( function(){ throw('Some exception'); }).toThrow('Some exception');
});
});
У Jasmine есть ряд других функций, таких как настраиваемые сопоставления, шпионы и поддержка асинхронных спецификаций.
Жасмин тестовые бегуны
Жасмин поставляется со встроенным средством запуска тестов. Тесты Jasmine могут запускать тесты браузера, включая простой файл SpecRunner.html или используя его в качестве средства запуска тестов командной строки, поддерживаемого для различных языков, таких как Nodejs, Python, Ruby , или (старый способ) с помощью Karma, простого инструмента запуска тестов JavaScript. .
Сравнение жасмина и мокко
Mocha - еще один популярный фреймворк для тестирования Javascript. Сравнение между жасмином и мокко приведено в таблице ниже.
| Жасмин | Мокко |
|---|---|
| Жасмин приходит с тестовыми двойниками с помощью шпионов. | Mocha не поставляется с тестовой двойной библиотекой и обычно использует внешнюю библиотеку, такую как Sinon. |
| У Жасмин есть утилита командной строки для запуска тестов. | У Mocha есть утилита командной строки для запуска тестов. |
| У Жасмин встроены утверждения. | Mocha не имеет библиотеки утверждений и использует Chai для утверждений. |
Преимущества
- Цель Jasmine - быть независимыми от браузера, фреймворка, платформы и языка.
- Помимо разработки, основанной на поведении, Jasmine также поддерживает разработку, основанную на тестировании .
Смотрите также
- Список библиотек JavaScript
- Список фреймворков для модульного тестирования
- Mocha (фреймворк JavaScript)
- QUnit