Тестування Jasmine vs. Mocha на JavaScript для Rails 3.1+ [закрито]


74

Я маю досвід роботи з Жасмином і мені це подобається зовсім небагато. Хтось має досвід роботи як з жасмином, так і з моккою, особливо для Rails? Мені цікаво, чи варто переходити на.

Відповіді:


119

Я провів тестування як на Жасмин, так і на Мокку. По-перше, переключення порівняно просто. Основний шаблон describeі itшаблон BDD ідентичний. Вам потрібно буде змінити спосіб твердження та перейти на інший інтерфейс для асинхронних тестів. Загалом вони порівнянні.

Асинхронний інтерфейс Mocha набагато простіший і послідовніший. Тести та налаштування можуть бути як синхронними, так і асинхронними, що чудово. Це, плюс той факт, що TJ Holowaychuck - епічний поет-код, є вагомими причинами спробувати Mocha.

Я думаю, що збіги з жасмином легше читати та вишуканіші, особливо у поєднанні з плагіном jasmine-jquery. Mocha зазвичай поєднується з окремою бібліотекою для тверджень, часто chai.js, якщо ви проводите тестування в браузері, або should.js для тестування лише на вузлах. Я задоволений assert.equal()інтерфейсом chai , але стиль жасмину expect($("#central_errors").html()).toContain("must provide a name");здається мені більш елегантним. Я не прихильник expect(42).to.be.above(41)інтерфейсу стилю chai.js із реченнями, розділеними крапками, оскільки він погано працює на слух.

Зрештою, це питання особистих уподобань, і я настійно закликаю вас просто витратити день або близько того, пишучи тести Мокки замість Жасмин, і подивитися, як це відчувається. Цілком вигідна інвестиція, навіть якщо ви вирішите дотримуватися Жасмин, ви будете робити це з власних знань та мати обізнаність щодо інших способів вирішення деяких проблем, які вирішує Жасмин. Я спробував, і я дотримуюся Мокки, частково тому, що ставки на TJ - це хороша ставка, але Жасмін - це ще й зріла, солідна та широко прийнята бібліотека.


Дякую Петре! Саме такі спостереження я шукав :)
LupineDev

7
Гей, Петре, чудовий запис! Щоб додати, з Chai ви також можете отримати інтерфейс у стилі жасмин ("bdd"): chaijs.com/code/expect.html Насправді ви можете змішувати його та поєднувати з інтерфейсом assert ("tdd") . Аналогічно jasmine-jquery, існує також плагін chai-jquery, хоча це досить новий.
Джо Лісс,

6
Так, і chai, і mocha мають кілька інтерфейсів. Як я вже згадував вище, мені не подобається інтерфейс chai bdd / очікування, оскільки я не вважаю всі ці точки корисними.
Пітер Лайонс,

4
+1 на слух. І чудовий запис. А для antip спробувати їх обох і подивитися, як вони працюють фалангово.
Скотт Сільві,

Чи є якісь зміни у вашій відповіді через Jasmine 2.0?
Антон Рудешко

4

Перегляньте проект Teabag на github. Це спеціально дозволяє використовувати трубопровід активів разом із Mocha, Jasmine або QUnit.

https://github.com/modeset/teaspoon

Mocha - це чудова бібліотека, але я, як правило, використовую Жасмин - для мене це, перш за все, знання та досвід роботи з Жасмином, але Mocha має кілька справді чудових можливостей - наприклад, повідомляти Вас, коли Ви викидаєте речі в глобальний масштаб.

Зрозумів, що варто згадати про проект, оскільки він спеціально дозволяє пограти з обома (у різних люксах), щоб ви могли вирішити самі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.