Jasmine vs. Mocha JavaScript test pour Rails 3.1 + [fermé]

J'ai de L'expérience avec Jasmine et je l'aime beaucoup. Est-ce que quelqu'un a de l'expérience avec le jasmin et le moka, en particulier pour les Rails? Je me demande si cela vaut la peine de passer à.

73
demandé sur ROMANIA_engineer 2012-03-15 01:08:27

2 réponses

J'ai fait des tests à la fois au jasmin et au moka. Tout d'abord, la commutation est relativement facile. Le modèle BDD de base describe et it est identique. Vous devrez changer la façon dont vous faites vos assertions et passer à une interface différente pour les tests asynchrones. Dans l'ensemble, ils sont comparables.

L'interface asynchrone de Mocha est beaucoup plus simple et plus cohérente. Les Tests et la configuration peuvent être synchrones ou asynchrones, ce qui est génial. Ceci, plus le fait que TJ Holowaychuck est un poète de code épique les raisons sont bonnes pour essayer de Moka.

Je pense que les matchers Jasmine sont plus faciles à lire et plus élégants, surtout lorsqu'ils sont associés au plugin jasmine-jquery. Mocha est généralement associé à une bibliothèque séparée pour les assertions, souvent chai.js si vous faites des tests dans le navigateur ou devrait.js pour les tests de nœud uniquement. Je suis content de l'interface assert.equal() de chai, mais le style Jasmine expect($("#central_errors").html()).toContain("must provide a name"); me semble plus élégant. Je ne suis pas un fan du chai.JS expect(42).to.be.above(41) interface de style avec des phrases délimitées par des points car il ne fonctionne pas bien sur le plan phonétique.

En fin de Compte, c'est une question de préférence personnelle et je vous encourage fortement à passer une journée à écrire des tests de moka au lieu de Jasmine et à voir comment cela se sent. Totalement un investissement intéressant, même si vous décidez de rester avec Jasmine, vous le ferez à partir d'un lieu de connaissance de première main et d'avoir une conscience d'autres façons de résoudre certains des problèmes que Jasmine résout. Je l'ai essayé et je m'en tiens au moka en partie parce que Parier sur TJ est un bon bet, mais Jasmine est aussi une bibliothèque mature, solide et largement adoptée.

119
répondu Peter Lyons 2012-03-19 05:50:58

Consultez le projet Teabag sur github. Il vous permet spécifiquement d'utiliser le pipeline d'actifs avec moka, Jasmine ou QUnit.

Https://github.com/modeset/teaspoon

Mocha est une très bonne bibliothèque, mais j'utilise généralement Jasmine - pour moi, il s'agit principalement de connaissances et d'expérience avec Jasmine, mais Mocha a des fonctionnalités vraiment cool-comme vous faire savoir quand vous saignez des choses dans la portée mondiale.

Pensé qu'il valait la peine de mentionner le projet parce qu'il vous permet spécifiquement de jouer avec les deux (dans différentes suites) afin que vous puissiez décider par vous-même.

4
répondu jejacks0n 2013-07-11 21:22:14