Pull to refresh

Comments 15

Спасибо за статью, сам пользуюсь подобным стеком технологий, отсюда два вопроса:

  1. Скажите пожалуйста, а в чем преимущество chai перед встроенными ассертами jasmine? Просто выглядит это все примерно одинаково (с точностью до синтаксиса), а иметь лишнюю зависимость не хочется. Насколько я понял, chai придумывался больше для работы с mocha.
  2. У Вас завелись source map'ы? У меня примерно такая же связка, только typescript вместо babel'я, я перепробовал все опции webpack на тему source map'ов, ни одна из них не привела к адекватному результату.
Лично меня chai подкупил синтаксисом expect. Показалось удобно писать правила через точку. Лаконичнее чтоли, хотя конечно же дело вкуса :)
Да sourcemap завелись как надо с первого раза, сам был очень приятно удивлен.
По поводу chai:
Вот пример одной и той же проверки (если нигде не напутал) на chai и на "чистом" jasmine:

expect(Instance).to.have.property('render'); //chai
expect(Instance.render).toBeDefined(); //jasmine

Как по мне, так разница совсем незначительная. Вот я и подумал, вдруг chai дает какие-то убер-плюшки по сравнению с jasmine.
Решив для себя что пора бы начать писать тесты, внимательно изучил chai-webdriver и подумал что может пригодиться. Альтернатив в Jasmine к сожалению не нашел, хотя наверняка есть.
Если уж используете chai, то каков смысл использовать jasmine, а не mocha?
Сейчас заметил что Вы еще и mocha подключаете. Вы точно понимаете как это у Вас там работает?
Понимал. Mocha нужен был только для Репортера, под CI. Но вообщем статья превратилась в тыкву, потому что прикрутил другой стек
хочу поделиться опытом смешивания гремучей смеси webpack + jasmine + chai + karma

Истинно гремучая смесь — typescript + webpack в расширениях для firefox. А если речь о портировании на лису расширения хрома — так и вовсе треш и угар.

А за статью — спасибо!
Вы забыли добавить в свою смесь Mocha, QUnit, CucumberJS, Vows, Sinon и немножко CasperJS для запаха.
Вот я вчера мучался с e2e тестированием: опять же Webpack (webpack-dev-server), Webdriver, Protractor c фреймворком Jasmine. Всё хорошо, пока не дошло до тестирования вывода результатов запроса с сервера (а бекенда у меня и нет), при unit-тестировании через Jasmine можно заинжектить в ангуляр $httpBackend и перехватывать http запросы выдавая свои данные.
А вот с Protractor такой фокус не прошел. Последнее что пробовал это https://github.com/kbaltrinic/http-backend-proxy, но не взлетело. Может есть у кого опыт подобного тестирования?
Не уверен насчет совместимости с webpack, но можно использовать https://github.com/seglo/connect-prism для мокинга ответов от бекенда. Если вы знакомы с ruby/rails, то это по сути аналог vcr.
Я разобрался, накидал простой пример на основе protractor-http-mock:
https://gist.github.com/dshster/8a8d1130a326b23e9694
Я очень поверхностно знаком с тестированием поэтому ваш пост у меня вызвал больше вопросов, чем дал ответов.

mocha — позволяет группировать тесты (describe, it), добавляет такие штуки как beforeEach и пр.
chai — собственно, библиотека для тестирования: мы делаем X и ожидаем от этого Y
jasmine — делает и то и то: группирует тесты и описывает ожидания

Вопросы:

  • Зачем использовать jasmine, если вы всё равно используете mocha и chai?
  • Зачем использовать mocha-reporter если можно воспользоваться jasmine-reporter, если вы всё таки решили использовать jasmine?
  • Объединяя первый и второй вопрос: получается, что jasmine + jasmine-reporter и mocha + chai + mocha-reporter — взаимозаменяемы. Зачем нужна такая смесь?

Надеюсь, что вопросы имеют смысл.
Современный JavaScript сейчас бурно развивается, поэтому появляется много похожих библиотек, плагинов к ним и плагинов к плагинам. Я бы посоветовал прежде чем писать туториалы, немного разобраться в них.
С одной стороны хочется запускать из консоли тесты, с другой стороны количество плагинов, конфигураций растет по экспоненте (не да б-г, отвалится что-то в ненужный момент или автора собъет поезд). angular+typescript+webpack+jasmine+karma+phantomjs+gulp+(еще разные плагины, к перечисленным)+простыни конфигов кармы, вебпака и пр. Меня это просто пугает.
Sign up to leave a comment.