Pull to refresh

Comments 10

Хоть обзор и короткий, но могу подтвердить что Jasmine — классная штука.

Классно то, что JS — динамический язык, и можно добавлять свои функции проверки ожиданий (matchers).

А с помощью spy мы передавали в тест функции, и проверяли что они вызывают другие функции (например, для проверки срабатывания событий).

Использовали для Windows 8 приложений для WinJS и нашли старнный баг — при отладке тестов (у нас их было около 2000), движок часто зависает. Но при запуске без отладки — всё отлично. Разбираться не стали.

Ну и если спецификация к тесту (describe) описана в стиле «как пользователь, я ожидаю» (а не «этот код делает это»), то вообще просто ориентироваться в коде приложения, когда тест проваливается.
Mocha более гибкий чем jasmine. Однако для mocha необходимо использование библиотеки утверждений (к примеру chai), что несколько сложнее в настройке и поддержке. Для jasmine есть прекрасный jasmine-jquery плагин, который упрощает тестирование JQuery и предоставляет поддержку фикстур. Думаю тут больше вопрос вкуса, так как по возможностям они сопоставимы.
Ну на счет сложности настройки библиотеки утверждений(assertion library) Вы по-моему перегибаете. Chai подключается одной строчкой(как на клиенте, так и на сервере). Кроме того тот-же Chai реализует несколько стилей assertions: assert, expect, should.
Что же касается Mocha — она реализует замечательный механизм для тестирования асинхронных методов, без использования тайм-аутов: callback done(). Все что нужно — передать done в асинхронный метод и вызвать его по окончании работы метода.
 it('should save without error', function(done){
      var user = new User('Luna');
      user.save(function(err){
        if (err) throw err;
        done();
      });
    })

Данный подход не встречал ни у одного другого тест фреймворка для JS. Хотя данная фича на клиенте не так уж и важна, зато для ноды — самое то.
Хотя данная фича на клиенте не так уж и важна, зато для ноды — самое то

Это смотря какой код на клиенте. Там тоже очень может пригодится асинхронный вараинт.
Особено хорош Mocha в CoffeeScript нотации :)
Спасибо за статью. Пользовался Jasmine для тестирования Backbone и Ember моделей.
Очень хочу пользоваться для тестирования всего приложения, но не знаю как.
Да хорошо-приятно, что есть jasmine-jquery, но хотелось бы реальный пример тестирования.
Постараюсь в одной из следующих статей посвященной jasmine привести пример тестирования небольшого Backbone приложения.
Использую vows вместе с grunt – доволен до жути. Нотация в виде json как-то более приятна и понятна, чем набор функций, которые надо знать и помнить.
Jasmine еще очень удобно использовать вместе с jsTestDriver внутри WebStorm для тестирования клиентского кода. Ничего кроме jasmine-jstd-adapter не нужно
Sign up to leave a comment.

Articles