Из Википедии, бесплатной энциклопедии
  (Перенаправлено с Jasmine (фреймворк JavaScript) )
Перейти к навигации Перейти к поиску

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. Сравнение между жасмином и мокко приведено в таблице ниже.

Преимущества [ править ]

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

См. Также [ править ]

  • Список библиотек JavaScript
  • Список фреймворков модульного тестирования
  • Mocha (фреймворк JavaScript)
  • QUnit

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Сайт жасмин
  • Жасмин на GitHub
  • JSSpec
  • JSpec
  • Винтовой блок