2012-03-14 14 views

risposta

119

Ho eseguito test sia in Jasmine che in Mocha. Innanzitutto, il passaggio è relativamente semplice. Il modello base describe e it BDD è identico. Dovrai modificare le tue asserzioni e passare a un'interfaccia diversa per i test asincroni. Nel complesso sono comparabili.

L'interfaccia asincrona di Mocha è molto più semplice e coerente. Test e setup possono essere sincroni o asincroni, il che è fantastico. Questo, oltre al fatto che TJ Holowaychuck è un poeta epico, sono buoni motivi per provare Mocha.

Penso che gli accoppiamenti Jasmine siano più facili da leggere e più eleganti, specialmente se abbinati al plugin jasmine-jquery. Mocha è solitamente associato a una libreria separata per asserzioni, spesso chai.js se si sta eseguendo test in-browser o should.js per il solo test del nodo. Sono felice dell'interfaccia di chai assert.equal(), ma lo stile Jasmine expect($("#central_errors").html()).toContain("must provide a name"); mi sembra più elegante. Non sono un fan dell'interfaccia di stile chai.js expect(42).to.be.above(41) con frasi delimitate da punti perché non funziona bene a livello audio.

In definitiva, questa è una domanda di preferenza personale e ti incoraggio vivamente a passare solo un giorno o più a scrivere test di Moka invece di Jasmine e vedere come ci si sente. Un investimento davvero utile, anche se decidi di restare con Jasmine lo farai da un luogo di conoscenza di prima mano e avrai consapevolezza di altri modi per risolvere alcuni dei problemi che Jasmine risolve. L'ho provato e mi sto attenendo a Mocha in parte perché scommettere su TJ è una buona scommessa, ma Jasmine è anche una libreria matura, solida e ampiamente adottata.

+0

Grazie Peter! Proprio il tipo di osservazioni che stavo cercando :) – LupineDev

+7

Ehi Peter, ottima recensione! Solo per aggiungere, con Chai, è possibile ottenere anche un'interfaccia in stile Jasmine ("bdd"): http://chaijs.com/code/expect.html In effetti è possibile combinarlo con l'assert (" tdd ") interfaccia. Analogamente a jasmine-jquery, c'è anche un plugin chai-jquery, anche se è piuttosto nuovo. –

+6

Yup sia chai che mocha hanno più interfacce. Come detto sopra, non mi piace l'interfaccia chai bdd/expect perché non trovo tutti quei punti utili. –

4

Controlla il progetto Teabag su github. Ti consente in particolare di utilizzare la pipeline di asset insieme a Mocha, Jasmine o QUnit.

https://github.com/modeset/teaspoon

Mocha di una bella grande biblioteca, ma io di solito usare Jasmine - per me è principalmente di conoscenze ed esperienze con Jasmine, ma Mocha ha alcune caratteristiche davvero interessanti - come ti permette di sapere quando sei sanguinare le cose nell'ambito globale.

Dato che vale la pena menzionare il progetto perché consente specificamente di giocare con entrambi (in diverse suite) in modo da poter decidere per te.